New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 5600 for branches/2014/dev_r4650_UKMO14.12_STAND_ALONE_OBSOPER/NEMOGCM/SETTE/prepare_job.sh – NEMO

Ignore:
Timestamp:
2015-07-15T17:46:12+02:00 (9 years ago)
Author:
andrewryan
Message:

merged in latest version of trunk alongside changes to SAO_SRC to be compatible with latest OBS

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2014/dev_r4650_UKMO14.12_STAND_ALONE_OBSOPER/NEMOGCM/SETTE/prepare_job.sh

    r5034 r5600  
    226226                                        # round up the number of nodes required. 
    227227                                        # 
    228                                         NB_NODES=$( echo $NB_NODES $NXIO_PROC | awk '{print ($1 + ( $2 / 4 ) + 1)}')                     
     228                                        NB_NODES=$( echo $NB_NODES $NXIO_PROC | awk '{print ($1 + ( $2 / 4 ) + 1)}')  
    229229                                fi 
    230230                                ;; 
    231                         ifort_MERCATOR_CLUSTER) 
     231                        XC40_METO*) #Setup for Met Office XC40 with any compiler 
     232                                # ocean cores are packed 32 to a node 
     233                                # If we need more than one node then have to use parallel queue and XIOS must have a node to itself 
     234                                NB_REM=$( echo $NB_PROC | awk '{print ( $1 % 32 ) }') 
     235                                if [ ${NB_REM} == 0 ] ; then 
     236                                        # number of processes required is an integer multiple of 32 
     237                                        # 
     238                                        NB_NODES=$( echo $NB_PROC $NXIO_PROC | awk '{print ($1) / 32}') 
     239                                else 
     240                                        # 
     241                                        # number of processes required is not an integer multiple of 32 
     242                                        # round up the number of nodes required. 
     243                                        # 
     244                                        NB_NODES=$( echo $NB_PROC $NXIO_PROC | awk '{printf("%d",($1) / 32 + 1 )}') 
     245                                fi 
     246                                # xios cores are sparsely packed at 4 to a node 
     247                                if [ $NXIO_PROC == 0 ] ; then 
     248                                    NB_XNODES=0 
     249                                else 
     250                                    NB_REM=$( echo $NXIO_PROC | awk '{print ( $1 % 4 ) }') 
     251                                    if [ ${NB_REM} == 0 ] ; then 
     252                                            # number of processes required is an integer multiple of 4                            
     253                                            # 
     254                                            NB_XNODES=$( echo $NXIO_PROC | awk '{print (( $1 / 4 ) + 1)}')  
     255                                    else 
     256                                            # 
     257                                            # number of processes required is not an integer multiple of 4                              
     258                                            # round up the number of nodes required. 
     259                                            # 
     260                                            NB_XNODES=$( echo $NXIO_PROC | awk '{printf("%d",($1) / 4 + 1) }')                     
     261                                    fi 
     262                                fi 
     263                                if [ ${NB_XNODES} -ge 1 ] ; then 
     264                                   NB_NODES=$((NB_NODES+NB_XNODES)) 
     265                                fi 
     266                                echo NB_XNODES=${NB_XNODES}  
     267                                echo Total NB_NODES=${NB_NODES} 
     268                                if [ ${NB_NODES} -eq 1 ] ; then 
     269                                   QUEUE=shared 
     270                                   #Not using XIOS in detatched mode and using less than one node so should be ok on shared node 
     271                                   #Load snplauncher module to allow use of mpiexec 
     272                                   SELECT="select=1:ncpus=$((NXIO_PROC + NB_PROC))":mem=15GB 
     273                                   module load cray-snplauncher 
     274                                   echo 'Shared Queue' 
     275                                else 
     276                                   QUEUE=normal 
     277                                   SELECT="select=$NB_NODES" 
     278                                   module unload cray-snplauncher #Make sure snplauncher module is not loaded 
     279                                   echo 'Normal Queue' 
     280                                fi 
     281                                ;; 
     282                        openmpi_NAVITI_MERCATOR) 
    232283                                echo NB_PROCS ${NB_PROC} 
    233284                                echo NB_NODES ${NB_NODES} 
     
    238289                                   NB_PROC_NODE=${NB_PROC} 
    239290                                else 
    240                                    if [ ${NB_PROC} -le 8 ] ; then 
     291                                   if [ ${NB_PROC} -le 16 ] ; then 
    241292                                      NB_NODES=1 
    242293                                      QUEUE=mono 
    243294                                      NB_PROC_NODE=${NB_PROC} 
    244295                                   else 
    245                                       NB_NODES=$( echo $NB_PROC | awk '{print $1 - $1 % 8}'  | awk '{print $1 / 8 }') 
     296                                      NB_NODES=$( echo $NB_PROC | awk '{print $1 - $1 % 16}'  | awk '{print $1 / 16 }') 
    246297                                      QUEUE=multi 
    247                                       NB_PROC_NODE=8 
     298                                      NB_PROC_NODE=16 
    248299                                  fi 
    249300                                fi 
     
    273324 
    274325        case ${COMPILER} in 
    275               ifort_MERCATOR_CLUSTER) 
    276                     #cat run_sette_test.job | sed -e"s:QUEUE:${QUEUE}:" > run_sette_test1.job  
    277                     #cat run_sette_test.job | sed -e"s/NPROC_NODE/${NB_PROC_NODE}/" > run_sette_test1.job  
    278                                                  #-e"s/NPROC_NODE/${NB_PROC_NODE}/" > run_sette_test1.job 
     326              openmpi_NAVITI_MERCATOR) 
    279327                    cat run_sette_test.job | sed -e"s/NPROC_NODE/${NB_PROC_NODE}/" \ 
    280328                                                 -e"s:QUEUE:${QUEUE}:" > run_sette_test1.job 
     329                    mv run_sette_test1.job run_sette_test.job 
     330                    ;; 
     331              XC40_METO*) 
     332                    cat run_sette_test.job | sed -e"s/QUEUE/${QUEUE}/" \ 
     333                                                 -e"s/SELECT/${SELECT}/" > run_sette_test1.job 
    281334                    mv run_sette_test1.job run_sette_test.job 
    282335                    ;; 
Note: See TracChangeset for help on using the changeset viewer.