Changeset 1274 for trunk/libIGCM/ins_job


Ignore:
Timestamp:
11/24/15 16:36:27 (9 years ago)
Author:
mafoipsl
Message:

For curie :

  • Add a new option in AA_post_jobs header on curie : "-c ::default_core::" with the number of core reserved.
  • Add 3 options to ins_job :
    • -p projet
    • -q standard/xlarge : with xlarge as default value. except for gencmip6 project
    • -c number of cores (default value is : 4 on standard node or 8 on xlarge node)
  • For batch usage, it's possible to set these options on ins_job command line. See Usage.
  • By default, 3 questions are asked interactively to the user.

With 4 or 8 cores per job we want to limit the number of simultaneous running jobs on one node
and eventually limit SCRATCH congestion.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/libIGCM/ins_job

    r1271 r1274  
    2424 
    2525Usage : 
    26   ${b_n} [-h] [-v] [-e] [-p project] 
     26  ${b_n} [-h] [-v] [-e]  
     27  or on curie/TGCC : 
     28  ${b_n} [-h] [-v] [-e] [-p project] [-q type_of_node] [-c number of cores] 
    2729 
    2830Options : 
    29   -h          : help 
    30   -v          : verbose mode 
    31   -e          : turn on ensemble mode (hindcast/forecast or date restart) 
    32   -p project  : add default project on curie 
     31  -h                  : help 
     32  -v                  : verbose mode 
     33  -e                  : turn on ensemble mode (hindcast/forecast or date restart) 
     34on curie only :  
     35  -p project          : add default project on curie 
     36  -q type_of_node     : add default type of nodes for postprocessing on curie standard/xlarge 
     37  -c number of cores  : add default number of cores for postprocessing on curie 1-16 or 1-128 
    3338" 
    3439} 
     
    7075x_e=false; 
    7176x_p=false; 
    72 while getopts :hvep: V ; do 
     77x_q=false; 
     78x_c=false; 
     79while getopts :hvec:p:q: V ; do 
    7380  case $V in 
    7481  (h)  ins_job_Usage; exit 0;; 
     
    7784  (p)  x_p=true 
    7885       ProjectID=${OPTARG} ;; 
     86  (q)  x_q=true 
     87       ProjectNode=${OPTARG} ;; 
     88  (c)  x_c=true 
     89       ProjectCore=${OPTARG} ;; 
    7990  (:)  echo ${b_n}" : -"${OPTARG}" option : missing value" 1>&2; 
    8091       exit 2;; 
     
    136147 
    137148#- 
    138 # Define Project ID to set up jobs header for Curie (TGCC) 
    139 #- 
    140 if ( ! ${x_p} ) ; then 
    141   if [ X"${SYSTEM}" == "Xcurie" ] ; then 
     149# Define Project parameters to set up jobs header for Curie (TGCC) 
     150# on curie define ProjectID, ProjectNode and ProjectCore : option or answer 
     151#- 
     152 
     153if [ X"${SYSTEM}" == "Xcurie" ] ; then 
     154  if ( ! ${x_p} ) ; then 
    142155    ProjectID=$( ccc_myproject | gawk '{ if ( $3 ~ /^project$/ && $4 !~ /^tgcc/ ) { print $4 } }' | head -n 1 ) 
    143     ProjectID=${ProjectID:="gen2211"} 
     156    ProjectID=${ProjectID:="gencmip6"} 
    144157    answer="" 
    145158    print - "Hit Enter or give project ID (default is ${ProjectID}), possible projects are $( echo $( ccc_myproject | gawk '{ if ( $3 ~ /^project$/ && $4 !~ /^tgcc/ ) { print $4 } }' | sort -u ) ) :" 
     
    149162      ProjectID=${answer} 
    150163    fi 
     164  fi # if ( ! ${x_p} ) 
     165  echo  ProjectID is ${ProjectID} 
     166 
     167  if ( ! ${x_q} ) ; then 
     168    #- ProjectID is known (option or answer), set ProjectNode 
    151169    [ "${ProjectID}" = "gencmip6" ] && ProjectNode="standard" || ProjectNode="xlarge" 
    152   fi 
     170    answerOK=false 
     171 
     172    while ( ! ${answerOK} ) ; do 
     173      answer="" 
     174      print - "Hit Enter or give TYPE OF NODE required for post-processing (default is \"${ProjectNode}\"), possible types of nodes are \"standard\" or \"xlarge\" : " 
     175      read answer 
     176      [ "X${answer}" == "X" ] || [ "X${answer}" == "Xstandard" ] || [ "X${answer}" == "Xxlarge" ] && answerOK=true 
     177    done 
     178 
     179    if [ "X${answer}" != "X" ] ; then 
     180      ProjectNode=${answer} 
     181    fi 
     182 
     183  fi # if ( ! ${x_q} ) 
     184  echo ProjectNode is ${ProjectNode} 
     185 
     186  #- ProjectNode is known (option or answer) set ProjectCoreMax 
     187  [ "${ProjectNode}" = "xlarge" ] && ProjectCoreMax="128" || ProjectCoreMax="16" 
     188 
     189  if ( ! ${x_c} ) ; then 
     190    #- ProjectNode is known (option or answer), set ProjectCore 
     191    [ "${ProjectNode}" = "xlarge" ] && ProjectCore="8" || ProjectCore="4" 
     192    answerOK=false 
     193 
     194    while ( ! ${answerOK} ) ; do 
     195      answer="" 
     196      print - "Hit Enter or give NUMBER OF CORES required for post-processing (default is \"${ProjectCore}\"), possible numbers of cores are \"1\" to \"${ProjectCoreMax}\" : " 
     197      read answer 
     198      [ "X${answer}" == "X" ] || [ ${answer} -ge 1 -a ${answer} -le ${ProjectCoreMax} ] && answerOK=true 
     199    done 
     200 
     201    if [ "X${answer}" != "X" ] ; then 
     202      ProjectCore=${answer} 
     203    fi 
     204  fi # if ( ! ${x_c} ) 
     205  echo ProjectCore is ${ProjectCore} 
     206#- ProjectCore is set (option or answer) 
     207# let check minimum/maximum value 1/${ProjectCoreMax} 
     208 
    153209else 
    154   if [ X"${SYSTEM}" != "Xcurie" ] ; then 
    155     print - "\nOption -p invalid with this host (${SYSTEM}): it will be ignored" 1>&2; 
    156   fi 
    157 fi 
     210  echo No option for Header regarding ProjectID, ProjectNode and ProjectCore because we are not on curie 
     211fi # if [ X"${SYSTEM}" == "Xcurie" ] 
    158212 
    159213#- 
     
    326380      -e "/^${W_P}/d"       \ 
    327381      -e "s/::default_node::/${ProjectNode}/" \ 
     382      -e "s/::default_core::/${ProjectCore}/" \ 
    328383      -e "s/::default_project::/${ProjectID}/" \ 
    329384      ${i} > ${j}'/'${n_f} 
Note: See TracChangeset for help on using the changeset viewer.