Changeset 2365 for palm/trunk/SCRIPTS


Ignore:
Timestamp:
Aug 21, 2017 2:59:59 PM (7 years ago)
Author:
kanani
Message:

Vertical nesting implemented (SadiqHuq?)

Location:
palm/trunk/SCRIPTS
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SCRIPTS/mbuild

    r2316 r2365  
    2727# -----------------
    2828# $Id$
     29# Added lckea & lckeam. KIT/IMK-IFU Garmisch cluster. LRZ (SadiqHuq)
     30#
     31# 2316 2017-07-20 07:53:42Z maronga
    2932# Removed qmake block as mrungui now runs as a python script
    3033#
     
    531534       # DETERMINE IP-ADDRES OF THE REMOTE-HOST
    532535    case  $remote_host  in
     536        (lcbwuni)        remote_address="129.13.82.89";;
    533537        (lcbullhh)       remote_address=136.172.50.13;;
    534538        (lccrayb)        remote_address=130.73.233.1;;
     
    541545        (lckiaps)        remote_address=118.128.66.223;;
    542546        (lckyut)         remote_address=133.5.4.37;;
     547        (lclrz)          remote_address=129.187.20.240;;
     548        (lckea*)         remote_address=172.27.80.109;;
    543549        (lctit)          remote_address=10.1.6.170;;
    544550        (lcxe6)          remote_address=129.177.20.113;;
     
    547553        (ibmkisti)       remote_address=150.183.146.24;;
    548554        (ibmku)          remote_address=133.5.4.129;;
     555        (ibmmuc)         remote_address=129.187.11.197;;
    549556        (ibms)           remote_address=150.183.5.101;;
    550557        (nech)           remote_address=136.172.44.192;;
     
    783790       elif [[ $(echo $remote_host | cut -c1-3) = ibm  &&  $(echo $string | cut -c1-3) = ibm ]]
    784791       then
    785           cpp_options="${cpp_options},-D__ibm"
     792          if [[ $remote_host = ibmmuc ]]
     793          then
     794             cpp_options="${cpp_options}"
     795          else
     796             cpp_options="${cpp_options},-D__ibm"
     797          fi
    786798       elif [[ $(echo $remote_host | cut -c1-3) = nec  &&  $(echo $string | cut -c1-3) = nec ]]
    787799       then
     
    790802          if [[ $(echo $remote_host | cut -c1-3) = ibm ]]
    791803          then
    792              cpp_options="${cpp_options},-D__$string"
     804             if [[ $remote_host = ibmmuc ]]
     805             then
     806                cpp_options="${cpp_options} -D__parallel"
     807             else
     808                cpp_options="${cpp_options},-D__$string"
     809             fi
    793810          else
    794811             cpp_options="$cpp_options -D__$string "
  • palm/trunk/SCRIPTS/mrun

    r2303 r2365  
    2727# -----------------
    2828# $Id$
     29# Added lckea & lckeam. KIT/IMK-IFU Garmisch cluster. LRZ (SadiqHuq)
     30# Vertical grid nesting: set vnested_mode. -N Procs for fine and coarse grid.
     31#
     32# 2303 2017-07-04 12:26:18Z raasch
    2933# bugfix: setting default value for write_binary
    3034#
     
    334338 module_calls=""
    335339 mrun_script_name=$mc
     340 vnested_dist=""
     341 vnested_mode="vnested_twi"
    336342 netcdf_inc=""
    337343 netcdf_lib=""
     
    341347 numprocs_atmos=0
    342348 numprocs_ocean=0
     349 numprocs_crse=0
     350 numprocs_fine=0
    343351 OOPT=""
    344352 openmp=false
     
    373381 run_coupled_model=false
    374382 run_mode=""
     383 run_vnested_model=false
    375384 dashes="  ----------------------------------------------------------------------------"
    376385 silent=false
     
    475484    # READ SHELLSCRIPT-OPTIONS AND REBUILD THE MRUN-COMMAND STRING (MC),
    476485    # WHICH WILL BE USED TO START RESTART-JOBS
    477  while  getopts  :a:bBc:Cd:Fg:G:h:H:i:kK:m:M:n:o:O:p:P:q:r:R:s:St:T:u:U:vw:xX:yY:zZ option
     486 while  getopts  :a:bBc:Cd:Fg:G:h:H:i:kK:m:M:n:N:o:O:p:P:q:r:R:s:St:T:u:U:vw:xX:yY:zZ option
    478487 do
    479488   case  $option  in
     
    495504       (M)   makefile=$OPTARG; mc="$mc -M$OPTARG";;
    496505       (n)   node_usage=$OPTARG; mc="$mc -n$OPTARG";;
     506       (N)   run_vnested_model=true; vnested_dist=$OPTARG; mc="$mc -N'$OPTARG'";;
    497507       (o)   output_list=$OPTARG; mc="$mc -o'$OPTARG'";;
    498508       (O)   use_openmp=true; threads_per_task=$OPTARG; mc="$mc -O$OPTARG";;
     
    550560    printf "\n        -M    Makefile name                            Makefile"
    551561    printf "\n        -n    node usage (shared/not_shared)           depending on -h"
     562    printf "\n        -N    Vertical grid nesting. Number of"
     563    printf "\n              PE for Coarse and Fine grid"
    552564    printf "\n        -o    OUTPUT control list                      \"\" "
    553565    printf "\n        -O    threads per openMP task                  ---"
     
    713725 fi
    714726
     727      # NESTING (-N) selected and vnesting_mode specified
     728 if [[ $run_vnested_model = true ]]
     729 then
     730
     731    if  [[ -n $vnested_dist ]]
     732    then
     733
     734       numprocs_crse=`echo $vnested_dist | cut -d" " -s -f1`
     735       numprocs_fine=`echo $vnested_dist | cut -d" " -s -f2`
     736
     737       if (( $numprocs_crse + $numprocs_fine != $numprocs ))
     738       then
     739
     740          printf "\n  +++ number of processors does not fit to specification by \"-N\"."
     741          printf "\n      PEs (total)     : $numprocs"
     742          printf "\n      PEs (Coarse)    : $numprocs_crse"
     743          printf "\n      PEs (Fine)      : $numprocs_fine"
     744          locat=vnesting; exit
     745
     746       fi
     747
     748    else
     749
     750          printf "\n  +++ "Specify PE for fine and coarse grid: -N "nCGPE nFGPE \"-N\"."
     751          locat=vnesting; exit
     752
     753    fi
     754    vnested_dist=`echo "$numprocs_crse $numprocs_fine"`
     755 fi
     756
    715757    # SAVE VALUES OF MRUN-OPTIONS SICHERN IN ORDER TO OVERWRITE
    716758    # THOSE VALUES GIVEN IN THE CONFIGURATION-FILE
     
    11951237        (ibmh)       queue=cluster;;
    11961238        (ibmkisti)   queue=class.32plus;;
     1239        (ibmmuc*)    queue=test;;
     1240        (lcbwuni)    queue=develop;;
    11971241        (lcbullhh)   queue=compute;;
    11981242        (lccrayb)    queue=mpp1q;;
     
    12031247        (lckyuh)     queue=fx-single;;
    12041248        (lckyut)     queue=cx-single;;
     1249        (lclrz)      queue=mpp2;;
    12051250        (lctit)      queue=S;;
    12061251        (unics)      queue=unics;;
     
    17641809
    17651810       # SET PREPROCESSOR-DIRECTIVES TO SELECT OPERATING SYSTEM SPECIFIC CODE
    1766     if [[ $(echo $localhost | cut -c1-3) = ibm ]]
     1811    if [[ $(echo $localhost | cut -c1-3) = ibm && $localhost != ibmmuc* ]]
    17671812    then
    17681813       cpp_options="${cpp_options},-D__ibm=__ibm"
     
    17781823
    17791824       # SET DIRECTIVES GIVEN BY OPTION -K (E.G. parallel)
    1780     if [[ $(echo $localhost | cut -c1-3) = ibm ]]
     1825    if [[ $(echo $localhost | cut -c1-3) = ibm && $localhost != ibmmuc ]]
    17811826    then
    17821827       [[ -n $cond1 ]]  &&  cpp_options="${cpp_options},-D__$cond1=__$cond1"
     
    18931938    fi
    18941939 fi
    1895  TEMPDIR=$tmp_user_catalog/${usern}.$kennung
    1896 
     1940
     1941if [[ $localhost = ibmmuc* ]]
     1942then
     1943   TEMPDIR=$tmp_user_catalog/${USER}.$kennung
     1944else
     1945   TEMPDIR=$tmp_user_catalog/${usern}.$kennung
     1946fi
    18971947
    18981948    # DETERMINE THE NAME OF THE DIRECTORY WHICH IS USED TO TEMPORARILY STORE DATA FOR RESTART RUNS
     
    27922842                   then
    27932843                      /opt/optibm/HPM_2_4_1/bin/hpmcount  a.out
     2844                   elif [[  $localhost = ibmmuc* ]]
     2845                   then
     2846                      ulimit -c unlimited        # only for debgingg
     2847                      echo $MP_NODES        > ~/job_queue/hostfile.$kennung
     2848                      echo $MP_PROCS       >> ~/job_queue/hostfile.$kennung
     2849                      cat $LOADL_HOSTFILE  >> ~/job_queue/hostfile.$kennung
     2850                      export MP_NODES=$nodes
     2851                      export MP_PROCS=$numprocs
     2852                      # export MPI_SINGLE_THREAD=no   # LRZ NetCDF
     2853                      # export MP_TASKS_PER_NODE=$tasks_per_node
     2854                      echo "Resource Info: "
     2855                      echo "numprocs:         " $numprocs " MP_PROCS " $MP_PROCS
     2856                      echo "nodes:            " $nodes    " MP_NODES " $MP_NODES
     2857                      echo "tasks_per_node:   " $tasks_per_node
     2858                      echo "threads_per_task: " $threads_per_task
     2859                      export OMP_NUM_THREADS=1
     2860                      source /lrz/sys/share/modules/init/bash
     2861                      module li
     2862                      echo "runfile_atmos"
     2863                     
     2864                      if [[ $run_vnested_model = true ]]
     2865                      then
     2866                         
     2867                         printf "\n      Nested run ($numprocs_crse Coarse, $numprocs_fine Fine)"
     2868                         printf "\n      using $nested_mode nesting"
     2869                         printf "\n\n"
     2870                         
     2871                         echo "$vnested_mode $numprocs_crse $numprocs_fine"  >  runfile_atmos
     2872                         
     2873                         poe   ./a.out  <  runfile_atmos
     2874                         # mpiexec -n $numprocs  ./a.out  <  runfile_atmos
     2875                      else
     2876                         echo "precursor_atmos"  >  runfile_atmos
     2877                         poe   ./a.out -proc $numprocs -nodes  $nodes <  runfile_atmos 
     2878                         # mpiexec -n $numprocs  ./a.out  <  runfile_atmos 
     2879                     
     2880                      fi
    27942881                   else
    27952882                      if [[ $run_coupled_model = false ]]
     
    28992986                   printf "\n      threads per task: $threads_per_task  stacksize: unlimited"
    29002987                fi
    2901                 if [[ $run_coupled_model = false ]]
     2988                if [[ $run_coupled_model = false && $run_vnested_model = false ]]
    29022989                then
    29032990                   if [[ "$ocean_file_appendix" = true ]]
     
    29483035                   then
    29493036                      mpirun_rsh -hostfile $PBS_NODEFILE -np `cat $PBS_NODEFILE | wc -l` a.out  < runfile_atmos
    2950 
     3037                   elif [[ $host = lclrz || $host = lcbwuni  ]]
     3038                   then
     3039                      mpiexec  -n $ii  a.out  <  runfile_atmos  $ROPTeS
     3040                   elif [[ $host = lckea* ]]
     3041                   then
     3042                      srun  -n $ii  a.out  <  runfile_atmos  $ROPTeS
    29513043                   elif [[ $host = lckiaps ]]
    29523044                   then
     
    29593051                   fi
    29603052
    2961                 else
    2962 
     3053                elif [[ $run_coupled_model = true ]]
     3054                then
    29633055                       # COUPLED RUN
    29643056                   (( iia = $numprocs_atmos / $threads_per_task ))
     
    29923084                   wait
    29933085
     3086
     3087                elif [[ $run_vnested_model = true ]]
     3088                then
     3089                    printf "\n      Vertical Nested run ($numprocs_crse Coarse, $numprocs_fine Fine)"
     3090                    printf "\n      using $vnested_mode vnesting"
     3091                    printf "\n\n"
     3092
     3093                     echo "$vnested_mode $numprocs_crse $numprocs_fine"  >  runfile_atmos
     3094
     3095                     if [[  $host = lcbwuni  ||  $host = lclrz*  ]]
     3096                     then
     3097                         mpiexec  -n $ii  a.out  <  runfile_atmos  $ROPTeS
     3098                     elif [[ $host = lckea*  ]]
     3099                     then
     3100                         srun  -n $ii  a.out  <  runfile_atmos  $ROPTeS
     3101                     else
     3102                        mpirun   -np $numprocs  ./a.out  $ROPTS  < runfile_atmos
     3103                     fi
     3104                     wait
    29943105                fi
    29953106
     
    36573768    [[ "$ocean_file_appendix" = true ]]  &&  mrun_com=${mrun_com}" -y"
    36583769    [[ $run_coupled_model = true ]]  &&  mrun_com=${mrun_com}" -Y \"$coupled_dist\""
     3770    [[ $run_vnested_model  = true ]]  &&  mrun_com=${mrun_com}" -N \"$vnested_dist\""
    36593771    [[ "$check_namelist_files" = false ]]  &&  mrun_com=${mrun_com}" -z"
    36603772    [[ "$combine_plot_fields" = false ]]  &&  mrun_com=${mrun_com}" -Z"
  • palm/trunk/SCRIPTS/subjob

    r2295 r2365  
    2828# -----------------
    2929# $Id$
     30# Added lckea & lckeam. KIT/IMK-IFU Garmisch cluster. LRZ (SadiqHuq)
     31#
     32# 2295 2017-06-27 14:25:52Z raasch
    3033# adjustments for using lcgeohu (cirrus @ HUB)
    3134#
     
    252255     (inferno)               local_address=130.75.105.5;   local_host=lcmuk;;
    253256     (irifi)                 local_address=130.75.105.104; local_host=lcmuk;;
     257   # (i*)                    local_address=129.187.11.197; local_host=ibmmuc;;
    254258     (jaboticaba)            local_address=150.163.25.181; local_host=lcbr;;
     259     (kea*)                  local_address=172.27.80.109;  local_host=lckeal;;
    255260     (sno)                   local_address=130.75.105.113; local_host=lcmuk;;
    256261     (kuma)                  local_address=130.75.105.115; local_host=lcmuk;;
    257262     (levanto)               local_address=130.75.105.45;  local_host=lcmuk;;
    258263     (login*)                local_address=118.128.66.201; local_host=lckiaps;;
     264   # (login*)                local_address=129.187.11.197; local_host=ibmmuc;;
     265     (lm*)                   local_address=129.187.11.197; local_host=ibmmuc;;
     266     (lx*)                   local_address=129.187.20.240; local_host=lclrz;;
     267     (mpp2*)                 local_address=129.187.20.105; local_host=lclrz;;
    259268     (maestro)               local_address=130.75.105.2;   local_host=lcmuk;;
    260269     (meller)                local_address=134.106.74.155; local_host=lcfor;;
     
    278287     (tc*)                   local_address="ocean";        local_host=lcocean;;
    279288     (t2a*)                  local_address=10.1.6.165;     local_host=lctit;;
     289     (uc1n*)                 local_address=129.13.82.89;   local_host=lcbwuni;;
    280290     (urban*)                local_address=147.46.30.151   local_host=lcsb;;
    281291     (vinessa)               local_address=130.75.105.112; local_host=lcmuk;;
     
    409419        (ibmku)   queue=s4; remote_address=133.5.4.129; submcom=/usr/local/bin/llsubmit;;
    410420        (ibms)    queue=p_normal; remote_address=150.183.5.101; submcom=/usr/lpp/LoadL/full/bin/llsubmit;;
     421        (ibmmuc)  remote_address=129.187.11.197; submcom=/usr/bin/llsubmit;;
     422        (lcbwuni) queue=develop; remote_address=129.13.82.89; submcom=/opt/moab/bin/msub;;
    411423        (lcbullhh)    queue=compute; remote_address=136.172.50.13; submcom=/usr/bin/sbatch;;
    412424        (lccrayb) queue=mpp1testq; remote_address=130.73.233.1; submcom="/opt/moab/default/bin/msub -E";;
     
    417429        (lckyoto) remote_address=133.3.51.11; submcom=/thin/local/bin/qsub;;
    418430        (lck)     remote_address=165.132.26.61; submcom=/usr/torque/bin/qsub;;
     431        (lckeal)  queue=ivy; remote_address=172.27.80.109; submcom=/usr/bin/sbatch;;
    419432        (lckiaps) remote_address=118.128.66.201; submcom=/opt/pbs/default/bin/qsub;;
    420433        (lckordi) remote_address=210.219.61.8; submcom=/usr/torque/bin/qsub;;
    421434        (lckyuh)  remote_address=133.5.4.33; submcom=/usr/bin/pjsub;;
    422435        (lckyut)  remote_address=133.5.4.37; submcom=/usr/bin/pjsub;;
     436        (lclrz)   remote_address=129.187.20.240; submcom=/usr/bin/sbatch;;
    423437        (lcocean) remote_address="ocean"; submcom=qsub;;
    424438        (lcsb)    remote_address=147.46.30.151; submcom=/usr/torque/bin/qsub;;
     
    459473                     (*)                                     error=true;;
    460474                 esac;;
     475        (ibmmuc*) case  $ndq  in
     476                     (test|micro|general|large|fat|fattest|special|tmp1|tmp2) error=false;;
     477                     (*)                                     error=true;;
     478                 esac;;
    461479        (lcbullhh) case  $ndq  in
    462480                     (compute|compute2|shared)  error=false;;
    463481                     (*)                                     error=true;;
    464482                 esac;;
     483        (lcbwuni) case  $ndq  in
     484                     (develop|singlenode|multinode|verylong|fat) error=false;;
     485                     (*)                                     error=true;;
     486                 esac;;
    465487        (lccrayb) case  $ndq  in
    466488                     (dataq|mpp1q|mpp1testq|mpp2q|mpp2testq|smp1q|smp1testq|specialm1q)   error=false;;
     
    493515        (lckyut) case  $ndq  in
    494516                     (cx-dbg|cx-single|cx-small|cx-middle|cx-large)  error=false;;
     517                     (*)                                     error=true;;
     518                 esac;;
     519        (lclrz) case  $ndq  in
     520                     (mpp1|mpp2|iuv2|myri)                   error=false;;
    495521                     (*)                                     error=true;;
    496522                 esac;;
     
    744770    then
    745771
    746        if [[ $remote_host != ibmkisti ]]
     772       if [[ $remote_host == ibmmuc* ]]
     773       then
     774       cat > $job_to_send << %%END%%
     775
     776#!/bin/bash
     777# @ job_type = parallel
     778# @ job_name = $job_name
     779# @ output = $remote_dayfile
     780# @ error = $remote_dayfile
     781# @ wall_clock_limit = $timestring
     782$class
     783$mcm_affinity_options
     784$task_affinity
     785$notify_user
     786# @ network.MPI = sn_all,not_shared,us
     787# @ notification = always
     788# @ energy_policy_tag = table_kit_ifu
     789# @ minimize_time_to_solution = yes
     790# @ node = $nodes
     791# @ total_tasks = $numprocs
     792# @ node_topology = island
     793# @ island_count = 1,2
     794# @ environment = LD_LIBRARY_PATH=/lrz/sys/libraries/netcdf/4.2.1.1_impi4/lib:/lrz/sys/libraries/hdf5/1.8.15/ibmmpi/lib:/lrz/sys/libraries/fftw/3.3.3/avx/lib/
     795# @ queue
     796
     797%%END%%
     798
     799       elif [[ $remote_host != ibmkisti ]]
    747800       then
    748801
     
    12481301       submcom="$submcom -W group_list=$group_number -N $job_name -l walltime=$timestring -l select=$nodes:ncpus=$processes_per_node:mpiprocs=$tasks_per_node:mem=${Memory}gb -l place=scatter -o $remote_dayfile -j oe -et 1 -q $queue "
    12491302    fi
     1303
     1304 elif [[ $remote_host = lclrz ]]
     1305 then
     1306       cat > $job_to_send << %%END%%
     1307#!/bin/bash
     1308#SBATCH -J $job_name
     1309#SBATCH -t $timestring
     1310#SBATCH -N $nodes
     1311#SBATCH --ntasks-per-node=$processes_per_node
     1312#SBATCH --get-user-env
     1313#SBATCH -o $remote_dayfile
     1314#SBATCH -e $remote_dayfile
     1315#SBATCH --mail-user=${email_notification}
     1316#SBATCH --clusters=$queue
     1317
     1318$init_cmds
     1319
     1320$module_calls
     1321
     1322%%END%%
     1323
     1324 elif [[ $remote_host = lckea* ]]
     1325 then
     1326       keal_tasks_per_core=1
     1327
     1328       if [[ $queue = haswell || $queue = ivy* ]]
     1329       then
     1330          if (( tasks_per_node > 20 ))
     1331          then
     1332             keal_tasks_per_core=2
     1333          fi
     1334       fi
     1335
     1336       cat > $job_to_send << %%END%%
     1337#!/bin/bash
     1338#SBATCH -J $job_name
     1339#SBATCH -t $timestring
     1340#SBATCH -N $nodes
     1341#SBATCH --ntasks-per-node=$processes_per_node
     1342#SBATCH --ntasks-per-core=$keal_tasks_per_core
     1343#SBATCH --mem-per-cpu=${memory}mb
     1344#SBATCH --get-user-env
     1345#SBATCH -o $remote_dayfile
     1346#SBATCH -e $remote_dayfile
     1347#SBATCH --mail-user=${email_notification}
     1348#SBATCH --mail-type=ALL
     1349#SBATCH --partition=$queue
     1350
     1351export MV2_ENABLE_AFFINITY=0
     1352
     1353$init_cmds
     1354
     1355$module_calls
     1356
     1357%%END%%
     1358
     1359 elif [[ $remote_host=lcbwuni ]]
     1360 then
     1361    if [[ $email_notification = none ]]
     1362    then
     1363       email_directive=""
     1364    else
     1365       email_directive="#PBS -M $email_notification"
     1366    fi
     1367       cat > $job_to_send << %%END%%
     1368#!/bin/ksh
     1369#PBS -N $job_name
     1370#PBS -l walltime=$timestring
     1371#PBS -l nodes=${nodes}:ppn=$processes_per_node
     1372#PBS -l pmem=${memory}mb
     1373#PBS -m abe
     1374#PBS -o $remote_dayfile
     1375#PBS -j oe
     1376#PBS -q $queue
     1377$email_directive
     1378%%END%%
    12501379
    12511380 else
     
    16151744             eval  $submcom  $job_on_remhost
    16161745          fi
     1746       elif [[ $local_host = lclrz || $local_host = lckea* ]]
     1747       then
     1748          eval  $submcom  $job_on_remhost
     1749       elif [[ $local_host = lcbwuni ]]
     1750       then
     1751          msub  -q $queue $job_on_remhost
    16171752       else
    16181753          qsub  $job_on_remhost
Note: See TracChangeset for help on using the changeset viewer.