= __Travailler sur Vargas__ = '''[wiki:platform/documentation_2012/indexback Index]/[wiki:Modipsl_envCalc Environnement de Calcul]/[wiki:Modipsl_vargas Vargas]''' [[PageOutline]] [[BR]][[BR]] == 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. [[BR]][[BR]] == 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é, ... [[BR]][[BR]] == Compilation == N'oubliez pas de verifier que votre PATH contient bien le path pour l'outil FCM : /homegpfs/rech/psl/rpsl035/FCM/bin . [[BR]] Plus d'infos [https://forge.ipsl.jussieu.fr/igcmg/wiki/Modipsl_compil#FCM là]. [[BR]][[BR]] == 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. [[BR]][[BR]] == Les post-traitement == Les post-traitements se font sur la machine de l'IDRIS : Ulam [[BR]][[BR]] == Compiler IPSLCM5A == * Depuis le 8 décembre 2011, le couplé IPSLCM5A est prêt pour être compilé directement sur vargas. [[BR]][[BR]] == 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? [[BR]] 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.