Version 7 (modified by mafoipsl, 13 years ago) (diff) |
---|
Entête des jobs et commandes curie
Cette page décrit les entêtes des jobs sur curie ainsi que les commandes à lancer pour avoir un exécutable simple ou un couplé.
-
Entête des jobs et commandes curie
- Un executable séquentiel
- Un executable parallélisé avec OpenMP seulement
- Un executable parallélisé avec MPI seulement
- Un executable parallélisé avec MPI et OpenMP
- Un couplé avec Oasis sur 1 proc, NEMO sur 5 procs et LMDZ sur 26 procs, …
- Un executable avec l'IOServer débranché
- Un couplé avec Oasis sur 1 proc, NEMO sur 5 procs et LMDZ sur 13 procs MPI …
Un executable séquentiel
- Entête du job
#MSUB -n 1
- Commande
time ccc_mprun ./create_etat0_limit.e
Un executable parallélisé avec OpenMP seulement
- Entête du job
#MSUB -n 1 #MSUB -c 16
- Commande
export OMP_NUM_THREADS=16 time ccc_mprun ./gcm.e
- Résultat : 4 threads seront lancés sur 1 processus gcm.e
A noter : on peut réserver un noeud entier pour soi tout seul :
#MSUB -x
Un executable parallélisé avec MPI seulement
- Entête du job
#MSUB -n 32 BATCH_NUM_PROC_TOT=32
- Commande
time ccc_mprun ./gcm.e time ccc_mprun -n 32 ./gcm.e time ccc_mprun -n ${BRIDGE_MSUB_NPROC} ./gcm.e time ccc_mprun -n ${BATCH_NUM_PROC_TOT} ./gcm.e # A valider?
- Résultat : ccc_mprun lance 32 processus gcm.e
Un executable parallélisé avec MPI et OpenMP
- Méthode 1 sur un seul noeud :
- Entête du job
#MSUB -n 8 # Reservation de 8 processus MPI #MSUB -c 4 # Chaque tâche MPI lance 4 threads
- Commande
export OMP_NUM_THREADS=4 # Utilisation de 4 threads OpenMP par processus MPI time ccc_mprun ./gcm.e
- Résultat : ccc_mprun lance 8 tâches MPI gcm.e sur 4 threads chacun
- Entête du job
- Méthode 2 sur un seul noeud :
- Entête du job
#MSUB -n 32 # Reservation de 32 procs
- Commande
export OMP_NUM_THREADS=4 # Utilisation de 4 threads OpenMP par processus MPI time ccc_mprun -n 8 -c 4 ./gcm.e
- Résultat : ccc_mprun lance 8 tâches MPI gcm.e sur 4 threads chacun
- Commande
- Entête du job
- Méthode pour plusieurs noeuds :
- Entête du job
#MSUB -N 4 # 4 noeuds #MSUB -n 4 # 4 tâches MPI #MSUB -c 16 # Chaque tâche MPI lance 16 threads
- Commande
export OMP_NUM_THREADS=16 # Utilisation de 16 threads OpenMP par processus MPI time ccc_mprun ./gcm.e
- Résultat : ccc_mprun lance 4 tâches MPI gcm.e sur 4 noeuds différents, chacune avec 16 threads OpenMP
- Entête du job
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 ccc_mprun -f ./run_file
- avec run_file contenant, oasis en premier obligatoirement:
1 ./oasis 26 ./lmdz.x 5 ./opa.xx
- avec run_file contenant, oasis en premier obligatoirement:
- Résultat : mpirun lance 32 processus : 1 oasis, 26 lmdz et 5 opa
Un executable avec l'IOServer débranché
- Entête :
#MSUB -n 32 # Total number of core to use #MSUB -N 4 # number of nodes
- Commande :
cat > run_file << END 123 ./nemo.exe # 123 par exemple 5 ./xios_server.exe # 5 par exemple pour en avoir 128=4x32 en tout END time ccc_mprun -f run_file
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 1 # Curie noeuds larges = 32 coeurs/noeud
- Commande :
time mpirun -hostfile hosts -H curie30 -np 1 ./script_oasis.ksh : -H curie30 -np 5 ./script_opa.xx.ksh : -H curie30 -np 13 ./script_lmdz.x.ksh
- avec hosts contenant le noms des noeuds (recuperes via la commande mpirun hostname)
curie30 slots=32 max_slots=32 # ici pour curie noeuds larges avec 32 cores par noeud
- 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}
- avec hosts contenant le noms des noeuds (recuperes via la commande mpirun hostname)