Ignore:
Timestamp:
Dec 17, 2024, 2:02:51 PM (34 hours ago)
Author:
Laurent Fairhead
Message:

New version of LMDZ_Setup as rewritten by A. Barral

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BOL/LMDZ_Setup/script_SIMU

    r4990 r5415  
    11#!/bin/bash
    2 #
    3 #SBATCH --job-name=NOM_SIMU         # nom du job
    4 #SBATCH -A groupe@cpu
    5 #SBATCH --ntasks=8                 # Nombre de processus MPI ; reecrit par $mpi calcule par setup.sh
    6 #SBATCH --cpus-per-task=8          # Nombre de threads OpenMP ; reecrit par $omp defini dans setup.sh
    7 # de Slurm "multithread" fait bien reference a l'hyperthreading.
    8 #SBATCH --hint=nomultithread       # 1 thread par coeur physique (pas d'hyperthreading)
    9 #SBATCH --time=00:30:00            # Temps d execution maximum demande (HH:MM:SS)
    10 #SBATCH --output=outNOM_SIMU%j     # Nom du fichier de sortie
    11 #SBATCH --error=outNOM_SIMU%j      # Nom du fichier d'erreur (ici commun avec la sortie)
    12 #
    13 # To submit to test queue ; "time" (above) must be max 30 min
    14 # #SBATCH --qos=qos_cpu-dev
    15 
    16 set -ex
     2## Headers managed by sed
     3#@JZ#JeanZay
     4#@JZ#SBATCH --job-name=NOM_SIMU         # nom du job
     5#@JZ# Nombre de processus MPI :
     6#@JZ#SBATCH --ntasks=8
     7#@JZ##### number of MPI processes per node : 40(procs/node on Jean-Zay) / cpus-per-task (ex : =5 for 8 OMP)
     8#@JZ####SBATCH --ntasks-per-node=5    # if specified, also add "#SBATCH --nodes= ..."  with nodes=ntasks/(ntasks-per-node)
     9#@JZ# nombre de threads OpenMP
     10#@JZ#SBATCH --cpus-per-task=8
     11#@JZ# de Slurm "multithread" fait bien reference a l'hyperthreading.
     12#@JZ#SBATCH --hint=nomultithread       # 1 thread par coeur physique (pas d'hyperthreading)
     13#@JZ#SBATCH --time=00:30:00            # Temps d execution maximum demande (HH:MM:SS)
     14#@JZ#SBATCH --output=outNOM_SIMU%j     # Nom du fichier de sortie
     15#@JZ#SBATCH --error=outNOM_SIMU%j      # Nom du fichier d'erreur (ici commun avec la sortie)
     16#@JZ# To submit to test queue ; "time" (above) must be max 30 min
     17#@JZ#TESTQ#SBATCH --qos=qos_cpu-dev
     18#@SP#Spirit
     19#@SP#SBATCH --job-name=NOM_SIMU
     20#@SP#SBATCH --ntasks=8
     21#@SP#SBATCH --cpus-per-task=8
     22#@SP#SBATCH --time=00:30:00
     23#@SP#SBATCH --output=outNOM_SIMU%j
     24#@SP#SBATCH --error=outNOM_SIMU%j
     25#@ADS#Adastra
     26#@ADS#SBATCH --job-name=NOM_SIMU
     27#@ADS#SBATCH --ntasks=8
     28#@ADS#SBATCH --cpus-per-task=8
     29#@ADS#SBATCH --ntasks-per-node=8
     30#@ADS#SBATCH --time=00:30:00
     31#@ADS#SBATCH --output=outNOM_SIMU%j
     32#@ADS#SBATCH --error=outNOM_SIMU%j
     33#@ADS#SBATCH --exclusive
     34
     35set -eux
    1736
    1837# Number of MPI processes :
    1938ntasks=8
    20 
    21 # For Jean-Zay (replacing the next 3 lines, commented out)
    22 export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
    23 ## number of OpenMP threads 
    24 ##nthreads=8
    25 ##export OMP_NUM_THREADS=$nthreads
    26 
     39# number of OpenMP threads
     40nthreads=8
     41export OMP_NUM_THREADS=$nthreads
     42#@JZ#export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK  # For Jean-Zay (replacing the next 3 lines, commented out)
    2743# private memory for each thread
    2844export OMP_STACKSIZE=800M
    29 # Binding
    30 export OMP_PLACES=cores
     45
     46
     47#@JZ#export OMP_PLACES=cores  # "binding" present in old script_SIMU, but terribly reduces performance on Spirit...
     48ulimit -s unlimited
     49#@SP ulimit -Ss 8192
    3150
    3251simul=NOM_SIMU
    33 ulimit -s unlimited
    3452
    3553reseau_local=0
    3654#veget=y
    3755veget=CMIP6
    38 if [ $veget = NONE ] ; then VEGET=n ; else VEGET=y ; fi
     56if [[ $veget = "none" ]] ; then VEGET=n ; else VEGET=y ; fi
    3957
    4058isotopes=n
     
    4664ok_guide=y   # y/n guidage ou non
    4765climato=1
    48 orchidee_rev=5004
    4966
    5067echo '##############################################################'
     
    6178# Repertoires de travail
    6279WWORKD=$SCRATCHD/$SIMU_dir$$
     80if [[ -d $WWORKD ]]; then  # useful when running on local computer, where jobs aren't submitted
     81  rm -rf "$WWORKD"
     82fi
    6383mkdir -p $WWORKD
    6484cd $WWORKD
    6585SCRIPTDIR=$SCRATCHD/$MAINDIR
    6686
    67 cp $STORED/$MAINDIR/lmdz_env.sh . ; . lmdz_env.sh
     87cp "$STORED/$MAINDIR/lmdz_env.sh" .; . lmdz_env.sh
     88cp "$STORED/$MAINDIR/slurm_set_cpu_binding.sh" .
     89
    6890ERADIR=$STORED/$MAINDIR/GUIDE
    6991if [ "$aerosols" = "spla" ] ; then ERA10mDIR=$STORED/$MAINDIR/ERA10m ; fi
     
    128150if [ "$climato" = "0" ] ; then calend=gregorian ; else calend=earth_360d ; fi
    129151bisextile=0
    130 if [ $(( $year % 4 )) = 0 -a $calend = gregorian ] ; then bisextile=1 ; fi
     152if [[ $(( year % 4 )) = 0 && $calend = gregorian ]] ; then bisextile=1 ; fi
    131153if [ $paran = 0 ] ; then
    132154   if [ "$calend" = "gregorian" ] ; then
     
    206228  fi
    207229
    208   ## Ca doit etre la meme liste de fichiers rapatriee par setup.sh dans $LMDZ_Init/SPLA_Init
     230  ## Ca doit etre la meme liste de fichiers rapatriee par setup.sh dans $LMDZ_INIT/SPLA_Init
    209231  ## et interpolee (setup.sh aussi) dans $SPLADIR
    210232  if [ $aerosols = spla ] ; then
     
    239261    set +e ; for t in stomate sechiba ; do cp $SIMUDIR/start_$t.$ym.nc ${t}_rest_in.nc ; done ; set -e
    240262    if [ "`grep RIVER_ROUTING orchidee.def |grep -i y`" ] ; then
    241       set +e ; ln -s $LMDZ_Init/routing_simple.nc . ; ln -s $LMDZ_Init/routing.nc .
     263      set +e ; ln -s $LMDZ_INIT/routing_simple.nc . ; ln -s $LMDZ_INIT/routing.nc .
    242264               cp $SIMUDIR/start_routing.$ym.nc routing_start.nc ; set -e
    243265    fi
     
    251273    if [ ! -f sechiba_rest_in.nc ] ; then
    252274       echo '#########################################################'
    253        echo Autoinitialisation d orchidee au besoin
     275       echo "Autoinitialisation d'orchidee au besoin"
    254276       echo '#########################################################'
    255        get="ln -s $LMDZ_Init/"
     277       get="ln -s $LMDZ_INIT/"
    256278       for file in cartepente2d_15min.nc \
    257279          lai2D.nc soils_param.nc soil_bulk_and_ph.nc alb_bg_modisopt_2D_ESA_v2.nc reftemp.nc ; do ${get}$file ; done
     
    268290
    269291      if [ $veget = 7994 ] ; then
    270          get="ln -s $LMDZ_Init/"
     292         get="ln -s $LMDZ_INIT/"
    271293         for file in ndep_nhx.nc ndep_noy.nc nfert_cropland.nc nfert_pasture.nc nmanure_cropland.nc nmanure_pasture.nc bnf.nc ; do ${get}$file ; done
    272294      fi
     
    285307   if [ -f u.nc ] ; then
    286308      echo PROBLEME D EFFACEMENT DES FICHIERS DE REANALYSES
    287       exit
     309      exit 1
    288310   fi
    289311   for var in u v T hur ; do $GET $ERADIR/$year/$month/$var.nc $var.nc ; done
     
    301323echo '##################################################################'
    302324
    303 time $run ./gcm.e > listing
     325#@ADS if 1; then
     326time $MPICMD $ntasks ./gcm.e > listing
     327#@ADS else
     328#@ADS srun --cpu-bind=none --mem-bind=none -- ./slurm_set_cpu_binding.sh ./gcm.e > listing
     329#@ADS fi
     330
    304331if [ ! -f restartphy.nc ] ; then
    305332echo PROBLEME PAS DE FICHIER RESTARTPHY
     
    375402      if [ $num -le 250 ] ; then
    376403         sed -e 's/^simul=.*.$/simul='$simul_new'/' -e 's/^\# @ job_nam.*.=.*.$/\# @ job_name = '$simul_new'/' tmp_$simul >| tmp_$simul_new
    377          sbatch tmp_$simul_new
     404         $SUBMITCMD tmp_$simul_new
    378405      fi
    379406   fi
     
    389416
    390417cd $SCRIPTDIR
    391 sbatch tmp_$simul
     418$SUBMITCMD tmp_$simul
Note: See TracChangeset for help on using the changeset viewer.