Travailler sur Vargas
Index?/Environnement de Calcul/Vargas
-
Travailler sur Vargas
- Environnement minimum sur vargas
- Commandes de gestion de Jobs sur vargas et sur ulam
- Compilation
- Comment choisir le nombre de processus demandés ?
- Les post-traitement
- Compiler IPSLCM5A
- Faire une simulation avec le modèle IPSLCM5A
- Spécificités libIGCM sur vargas
- Commandes permettant de connaitre la mémoire utilisée par les jobs
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 là.
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.