wiki:IntegrationOpenMP/EnteteCommandesTitane

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 8 # Reservation de 8 processus MPI
    #MSUB -N 4  # Les processus sont répartis sur 4 noeuds, si on le met pas tout est sur le premieru noeud!!!!
    BATCH_NUM_PROC_TOT=32      
    
  • Commande
    export KMP_STACKSIZE=3g
    export KMP_LIBRARY=turnaround
    export MKL_SERIAL=YES
    unset MPI_PLACING_MODE
    export OMP_NUM_THREADS=4    # Utilisation de 4 threads OpenMP par processus MPI
    module load openmp/4thds # placement optimum
    time mpirun -np 8 ./gcm.e
    
  • Résultat : mpirun lance 8 processus gcm.e avec 4 threads chacun et sur 4 noeuds (de 2 processeurs quadricoeurs)
  • 289 s (run.card, NEWTON, 96x71x19)
  • config.card conseillé avec 4 tâches OpenMP: ATM= (gcm.e, lmdz.x, 8MPI, 4OMP)
  • Comment surveiller les threads :
    • top avec f puis j pour avoir lenumero du coeur utilise
    • 1 pour voir les %cpu
    • H pour voir les threads

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 32                 #  reservation de 32 cores 
    #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
Last modified 12 years ago Last modified on 06/18/12 15:30:03