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

Vertical nesting implemented (SadiqHuq?)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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"
Note: See TracChangeset for help on using the changeset viewer.