wiki:Modipsl_vargas

Version 17 (modified by acosce, 11 years ago) (diff)

--

Travailler sur Vargas

Index?/Environnement de Calcul/Vargas



Environnement minimum sur vargas

Il faut avoir accès à :

  • subversion :
    module load svn 
    
  • fcm :
    export PATH=/homegpfs/rech/psl/rpsl035/FCM/bin:$PATH 
    

Chemin vers certains utilitaires plus à jour :

/opt/freeware/bin/ls

On trouvera aussi la commande stat dans ce répertoire.



Commandes de gestion de Jobs sur vargas et sur ulam

  • La limite de temps dans les jobs se compte en temps réel. 1h sur 32 procs compte pour 32h. Attention à ne pas avoir trop de temps sur 1 processeur.
  • llsubmit --> soumissions de job
  • llcancel --> suppression de job
  • llq -u login --> indique tous les jobs en queue ou running pour login
  • Qstat --> ses propres jobs avec des informations un peu plus complètes
  • Qstat -a --> les informations des jobs de tous les utilisateurs
  • Astuce : paramétrer l'affichage de llq pour avoir les noms de jobs : llq -u $(whoami) -f %jn %id %st %c %dq %h
  • Post-mortem : jar , jar -l #jobid#, pour avoir le lendemain du job les informations détaillées : mémoire, temps réel, efficacité, ...



Compilation

N'oubliez pas de verifier que votre PATH contient bien le path pour l'outil FCM : /homegpfs/rech/psl/rpsl035/FCM/bin .
Plus d'infos .



Comment choisir le nombre de processus demandés ?

La méthode de parallélisation de LMDZ impose la règle suivante : il faut au moins 3 bandes de latitude par processus Si vous avez choisi un trop grand nombre de processus la simulation s'arrête avec le message suivant :

Arret : le nombre de bande de lattitude par process est trop faible (<2).
  ---> diminuez le nombre de CPU ou augmentez la taille en lattitude

Pour modifier le nombre de processus il faut changer la valeur de la variable JobNumProcTot dans config.card AVANT de lancer la commande ins_job.



Les post-traitement

Les post-traitements se font sur la machine de l'IDRIS : Ulam



Compiler IPSLCM5A

  • Depuis le 8 décembre 2011, le couplé IPSLCM5A est prêt pour être compilé directement sur vargas.



Faire une simulation avec le modèle IPSLCM5A

  • Repérer un état initial à utiliser :
    • Attention : create_etat0_limit ne fonctionne pas actuellement sur vargas. Il est compilé en parallèle (pour gagner du temps) et l'executable tourne sur le nombre de procs demandé par le job : 32 (ou 16). Comme ce n'est pas prévu dans ce0l, il s'arrête. Il faut donc partir d'un état initial créé autrement : autre simulation, ce0l executé ailleurs, par exemple sur brodie.
  • Il faut également utiliser la commande adéquate de lancement. Décommenter la ligne suivante et supprimer l'ancienne valeur de JobRunOptions dans config.card :
    JobRunOptions='"-pgmmodel MPMD -cmdfile"'
    
  • On recommande de faire les rebuild sur aulam depuis les répertoires d'archive. Mettre dans config.card :
    RebuildFromArchive=true
    

Spécificités libIGCM sur vargas

Comment refaire une simulation et avoir exactement les mêmes résultats?

Attention pour reproduire exactement la même simulation, sur vargas, il faut utiliser le même fichiers Bands d'équilibrage des calculs.

Voir COMP/lmdz.card.

Qu'est-ce que c'est que ce répertoire POSTPONE?

Qu'est-ce que c'est que ce répertoire POSTPONE qui est apparu dans mon répertoire de soumission sur vargas?
La machine ulam peut être arrêtée alors que votre job tourne sur vargas. Dans ces cas-là, les jobs de post-traitement ne peuvent pas être soumis. Le répertoire POSTPONE est là pour les garder au chaud ; lors de la prochaine soumission de jobs de post-traitement, les anciens travaux de post-traitements seront soumis en les prenant dans ce répertoire.

Commandes permettant de connaitre la mémoire utilisée par les jobs

  • En cours d'exécution, "Qstat -r". Par exemple :
    $ Qstat -r -u rgpi001
                                       Dispatch Data  Stack Rss
    Step Id             Owner   Class   Date     Avg   Avg   Max    Cpu Used
    ------------------- ------- ------- -------- ----- ----- ----- ---------
    vargas043.964451.0  rgpi001 c32t4   05 08:24   0.0   0.0   0.8 894:55:56
    

On lit 0,8 GiB pour "max RSS" (maximum resident set size, = data + stack normalement).

  • En cours d'exécution, "llq -x -l". Par exemple :
    llq -j vargas043.964451.0 -x -l
    

donne des pages et des pages d'information dont :

       Step maxrss: 826588 (en KiB)
  • Pour avoir des informations à la fin de l'exécution, "hpccount".

L'utiliser comme "time", devant un exécutable. Surcoût négligeable.

Exemple pour un exécutable séquentiel :

module load hpccount
hpccount ce0l

affiche à la fin des informations, dont "Maximum resident set size" :

hpccount v3.2.1 (IHPCT v2.2.0) summary

########  Resource Usage Statistics  ########  

Total amount of time in user mode            : 101.501224 seconds
Total amount of time in system mode          : 0.084285 seconds
Maximum resident set size                    : 289888 Kbytes
Average shared memory use in text segment    : 185030 Kbytes*sec
Average unshared memory use in data segment  : 23379240 Kbytes*sec
Number of page faults without I/O activity   : 72046
Number of page faults with I/O activity      : 464
Number of times process was swapped out      : 0
Number of times file system performed INPUT  : 0
Number of times file system performed OUTPUT : 0
Number of IPC messages sent                  : 0
Number of IPC messages received              : 0
Number of signals delivered                  : 0
Number of voluntary context switches         : 102
Number of involuntary context switches       : 184

#######  End of Resource Statistics  ########

Execution time (wall clock time)     : 103.605896331836 seconds

 PM_FPU_1FLOP (FPU executed one flop instruction )                :     14242086741
 PM_FPU_FMA (FPU executed multiply-add instruction)               :       906129309
 PM_FPU_FSQRT_FDIV (FPU executed FSQRT or FDIV instruction)       :        56844327
 PM_FPU_FLOP (FPU executed 1FLOP, FMA, FSQRT or FDIV instruction) :     15205060377
 PM_RUN_INST_CMPL (Run instructions completed)                    : 108472281030
 PM_RUN_CYC (Run cycles)                                          : 478031532649

 Utilization rate                               :          98.085 %
 Instructions per run cycle                     :           0.227 
 Total floating point operations                :       16111.190 M
 Flop rate (flops / WCT)                        :         155.505
 Mflop/s
 Flops / user time                              :         158.540
 Mflop/s
 Algebraic floating point operations            :       16054.345 M
 Algebraic flop rate (flops / WCT)              :         154.956
 Mflop/s
 Algebraic flops / user time                    :         157.980
 Mflop/s
 FMA percentage                                 :          11.248 %
 % of peak performan
  • Exemple sur un exécutable parallèle :
    export HPM_ASC_OUTPUT=yes
    export HPM_AGGREGATE=average.so
    poe hpccount -o hpccount_out -u -n gcm -procs 4 -stdoutmode 0
    

crée un fichier "hpccount_out_vargas....hpm" qui contient les informations moyennées sur les processus MPI.