= Entête des jobs et commandes titane = Cette page décrit les entêtes des jobs sur titane ainsi que les commandes à lancer pour avoir un exécutable simple ou un couplé. [[PageOutline]] == Un executable séquentiel == * Entête du job {{{ #MSUB -n 1 }}} * Commande {{{ time ./create_etat0_limit.e }}} == Un executable parallélisé avec OpenMP seulement == * Entête du job {{{ #MSUB -n 4 }}} * Commande {{{ export OMP_NUM_THREADS=4 time ./gcm.e }}} * Résultat : 4 threads seront lancés sur 1 processus gcm.e == Un executable parallélisé avec MPI seulement == * Entête du job {{{ #MSUB -n 32 BATCH_NUM_PROC_TOT=32 }}} * Commande {{{ time mpirun ./gcm.e }}} * Résultat : mpirun lance 32 processus gcm.e == Un executable parallélisé avec MPI et OpenMP == * Entête du job {{{ #MSUB -n 16 # Reservation de 16 processus MPI #MSUB -N 8 # Les processus sont répartis sur 8 noeuds }}} * Commande {{{ export OMP_NUM_THREADS=4 # Utilisation de 4 threads OpenMP par processus MPI module load openmp/4thds time mpirun -np $BRIDGE_MSUB_NPROC ./gcm.e }}} * Résultat : mpirun lance 16 processus gcm.e sur 4 threads chacun == Un couplé avec Oasis sur 1 proc, NEMO sur 5 procs et LMDZ sur 26 procs, MPI seul == * Entête du job {{{ #MSUB -n 32 BATCH_NUM_PROC_TOT=$BRIDGE_MSUB_NPROC }}} * Commande {{{ time mpirun --app ./run_file }}} * avec run_file contenant, oasis en premier obligatoirement: {{{ -np 1 ./oasis -np 26 ./lmdz.x -np 5 ./opa.xx }}} * Résultat : mpirun lance 32 processus : 1 oasis, 26 lmdz et 5 opa == Un couplé avec Oasis sur 1 proc, NEMO sur 5 procs et LMDZ sur 13 procs MPI et 2 tâches OpenMP == * Entête du job : {{{ #MSUB -n 19 # !! A verifier si necessaire : reservation de 19 processus MPI #MSUB -N 4 }}} * Commande : {{{ time mpirun -hostfile hosts -H titane30 -np 1 ./script_oasis.ksh : -H titane30 -np 5 ./script_opa.xx.ksh : -H titane30 -np 1 ./script_lmdz.x.ksh : -H titane31 -np 4 ./script_lmdz.x.ksh : -H titane32 -np 4 ./script_lmdz.x.ksh : -H titane33 -np 4 ./script_lmdz.x.ksh }}} * avec hosts contenant le noms des noeuds (recuperes via la commande mpirun hostname) {{{ titane30 slots=8 max_slots=8 titane31 slots=8 max_slots=8 titane32 slots=8 max_slots=8 titane33 slots=8 max_slots=8 }}} * avec par exemple script_lmdz.x.ksh contenant : {{{ #!/bin/ksh OMP_NUM_THREADS=2 (( MYMPIRANK = OMPI_COMM_WORLD_RANK - 6)) ./lmdz.x > out_lmdz.x.out.${MYMPIRANK} 2>out_lmdz.x.err.${MYMPIRANK} }}} == Entête du couplé IPSLCM5A sur titane == {{{ #!/usr/bin/ksh ################## ## TITANE CEA ## ################## #MSUB -r v3.historicalT52 # nom de la requete #MSUB -o Script_Output_v3.historicalT52.000001 # nom du fichier de sortie #MSUB -e Script_Output_v3.historicalT52.000001 # nom du fichier de sortie #MSUB -eo #MSUB -n 32 # reservation des processeurs pour le job #MSUB -T 86400 # Limite temps (en secondes) #MSUB -p gen2211 BATCH_NUM_PROC_TOT=$BRIDGE_MSUB_NPROC }}}