wiki:IntegrationOpenMP/EnteteCommandesTitane

Version 4 (modified by aclsce, 12 years ago) (diff)

--

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é.

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