wiki:Modipsl_curie

Version 10 (modified by mafoipsl, 12 years ago) (diff)

--

Utiliser Modipsl sur curie

Index/Environnement de Calcul/Curie



Documentation en ligne

Vous trouverez la documentation fournie par le TGCC ICI (dans l'onglet TGCC) , Donnez votre login/mot de passe du TGCC/CCRT.

Environnement minimum

  • Vérifiez que votre PATH contient bien le path pour l'outil FCM. Plus d'infos .

Commandes de gestion de job

  • ccc_msub mon_job -> soumet un job
  • ccc_mdel ID -> tue un job de n° ID
  • ccc_mstat -u login -> permet de voir tous les jobs soumis par login
  • ccc_mpp -> permet de voir tous les jobs soumis sur la machine. ccc_mpp -n pour ne pas avoir les couleurs.
  • ccc_mpp -u $(whoami) ->permet de voir ses jobs.
  • ccc_mpeek ID -> permet de voir le listing de sortie d'un job. A savoir les sorties des jobs sont visibles au fur et à mesure de leur avancement.
  • ccc_mpinfo pour connaitre l'état des classes et l'occupation des processeurs associés. Exemple :
    /usr/bin/ccc_mpinfo  
                          --------------CPUS------------  -------------NODES------------
    PARTITION    STATUS   TOTAL   DOWN    USED    FREE    TOTAL   DOWN    USED    FREE     MpC  CpN SpN CpS TpC
    ---------    ------   ------  ------  ------  ------  ------  ------  ------  ------   ---- --- --- --- ---
    standard     up        79920       0   64251   15669    4995       0    4016     979   4000  16   2   8   1
    large        up         9600       0    8002    1598     300       0     251      49   4000  32   4   8   1
    hybrid       up         1144       0    1056      88     143       0     132      11   2900   8   2   4   1
    
  • détail sur un job en train de tourner. Une ligne par commande ccc_mprun :
    ccc_mstat -H 375309
      JobID    JobName Partitio ReqCPU            Account               Start  Timelimit    Elapsed      State ExitCode 
    ------- ---------- -------- ------ ------------------ ------------------- ---------- ---------- ---------- -------- 
     375309 v3.histor+ standard      0   gen0826@standard 2012-05-11T16:27:53 1-00:00:00   01:49:03    RUNNING      0:0 
    375309+ p86maf_ru+              32   gen0826@standard 2012-05-11T16:28:16              00:14:19  COMPLETED      0:0 
    375309+ p86maf_ru+              32   gen0826@standard 2012-05-11T16:42:47              00:12:54  COMPLETED      0:0 
    375309+ p86maf_ru+              32   gen0826@standard 2012-05-11T16:55:59              00:13:30  COMPLETED      0:0 
    375309+ p86maf_ru+              32   gen0826@standard 2012-05-11T17:09:31              00:13:22  COMPLETED      0:0 
    375309+ p86maf_ru+              32   gen0826@standard 2012-05-11T17:24:06              00:13:36  COMPLETED      0:0 
    375309+ p86maf_ru+              32   gen0826@standard 2012-05-11T17:37:54              00:13:31  COMPLETED      0:0 
    375309+ p86maf_ru+              32   gen0826@standard 2012-05-11T17:51:28              00:14:19  COMPLETED      0:0 
    375309+ p86maf_ru+              32   gen0826@standard 2012-05-11T18:05:57              00:10:59    RUNNING      0:0 
    

Noeuds fins/noeuds larges

Sur le couplé IPSLCM5A-LR, les noeuds larges vont moins vite que titane (130%). Les noeuds fins vont 2 fois plus vite que les noeuds larges.

Pour utiliser les noeuds fins, penser ajouter #MSUB -q standard dans l'entête des jobs.

Depuis le 4 juillet 2012 et libIGCM_v2.0_beta3, le job de calcul de curie est sur noeuds fins et les jobs de post-traitements sur curie sont sur noeuds large. Les post-traitements classiques vont aussi vite sur noeud large et noeud fin.

Astuces

  • export LANG=POSIX pour afficher correctement curie.info
  • cdc.info renvoie des informations importantes comme les dates des prochaines maintenances
  • utiliser curie pour gérer vos répertoires CCCWORKDIR/CCCSTOREDIR. Attention il peut y avoir un temps de retard entre la vision depuis curie et depuis titane. Par exemple un fichier détruit sur curie peut être vu comme détruit sur titane avec un délai (synchronisation des caches).

Avant de lancer un Job

Modifier la limite de temps CPU

Dans le Job n'oubliez pas de modifier la limite de temps CPU demandée

#MSUB -T 1800             # Limite temps (en secondes)

Choisir son groupe de soumission

Par défaut les entêtes de Job créés par modipsl sont positionnées pour utiliser les heures genci du groupe gen2211.
La première chose que vous devez faire c'est de vous demander sur quel compte vous avez des heures de calcul (genci ou dsm ?). Pour cela vous devez vous reporter à la demande d'heures de calcul faite en début d'année.

  • Si vous appartenez au groupe gen2211 et que vous avez des heures sur ce projet vous n'avez rien à changer.
  • Si vos heures sont sur un autre projet genci vous devez modifier le numéro de projet dans le fichier libIGCM/AA_job ainsi que dans libIGCM/AA_rebuild_fromWorkdir.

Note 1: si vous aviez déjà lancé la commande ./ins_job vous devez également modifier les jobs créés (libIGCM/rebuild_fromWorkdir.job et config/.../EXP.../Job...)
Note 2: pour connaître les groupes auxquels vous appartenez vous pouvez utiliser la commande groups

Soumission du Job

ccc_msub Job_nom_simul



Les post-traitements

  • Les post-traitements se font sur la machine curie.
  • L'équivalent du dmget sur le cccstoredire est la commande "ccc_hsm get nom_fichier"

Les messages de fin de job

Pour recevoir les messages de fin de job envoyés par le job de calcul lui-même : fin de simulation, plantage, .... il ne faut rien faire de spécial. L'adresse prise en compte est celle contenue dans le fichier $HOME/.forward.

Compiler le modèle IPSLCM5A

Marche par défaut sans rien changer depuis avril 2012.

Attention si vous utilisez LMDZ avec de la plus haute résolution et avez besoin de plus de mémoire pour LMDZ, il faut spécifier pour LMDZ et pour toutes les composantes (IOIPSL, NEMO, Orchidee, PRISM) à la compilation et à l'édition de liens : mcmodel=medium ou mcmodel=large.



Faire une simulation avec le modèle IPSLCM5A

  • Il vaut mieux partir d'un restart pour l'atmosphère. Le lancement de create_eta0 doit se faire ainsi : ccc_mprun -n 1 create_etat0...
  • Si vous travaillez sur 32 processus (JobNumProcTot=32) cela signifie que la composante atmosphérique tournera sur 26 CPUs alors que la composante océanique sur 5 CPUs et le coupleur oasis une seule. C'est ce qui se passe par défaut.

Erreurs fréquentes sur curie lors de l'execution des simulations

En règle générale, ne pas se poser de question, faire clean_month et resoumettre.

Fatal dans run.card

Depuis libIGCM_v2_beta2, les jobs de post-traitements qui se plantent arrêtent le job de calcul en mettant le mot clé Fatal dans config.card. Il faut alors chercher le job de post-traitement qui n'a pas fonctionné, le relancer à la main puis modifier run.card et resoumettre le job de calcul.

il n'y a pas de fichier restart pour lmdz?

Symptôme :

  • ccc_mprun renvoie toujours un code à 0. S'il y a un plantage sur le couplé, la chaîne s'arrête car il n'y a pas de fichier restart pour lmdz.

Remède :

  • regarder dans le sous-répertoire Debug si le fichier de type *error existe. Il contient les messages d'erreurs en clair.
  • regarder dans le répertoire d'execution $SCRATCHDIR/RUN_DIR/xxxx/IPSLCM5A/xxxx le fichier out_run_file. S'il contient :
    srun: First task exited 600s ago
    srun: tasks 0-40,42-45: running
    srun: task 41: exited abnormally
    srun: Terminating job step 438782.1
    slurmd[curie1150]: *** STEP 438782.1 KILLED AT 2012-06-10T18:45:41 WITH SIGNAL 9 ***
    slurmd[curie1151]: *** STEP 438782.1 KILLED AT 2012-06-10T18:45:41 WITH SIGNAL 9 ***
    srun: Job step aborted: Waiting up to 2 seconds for job step to finish.
    slurmd[curie1150]: *** STEP 438782.1 KILLED AT 2012-06-10T18:45:41 WITH SIGNAL 9 ***
    slurmd[curie1151]: *** STEP 438782.1 KILLED AT 2012-06-10T18:45:41 WITH SIGNAL 9 ***
    
    ne pas se poser de question. Faire un clean_month et relancer la simulation.

erreurs lors des créations ou transferts de fichiers

Les file system CCCWORKDIR, CCCSTOREDIR, SCRATCHDIR sont fragiles. Les messages rencontrés sont de ce genre :

 Input/output error
 Cannot send after transport endpoint shutdown

Ne pas se poser de questions et resoumettre.

erreur lors de la soumission des jobs

Ce message :

error: Batch job submission failed: Job violates accounting policy (job submit limit, user's size and/or time limits)

indique que vous avez soumis trop de jobs. Attendre que les jobs s'écoulent et resoumettre. La commande ccc_mqinfo donne le nombre de jobs maximum, 128 à ce jour :

ccc_mqinfo
Name    Priority  MaxCPUs   MaxRun  MaxSub      MaxTime
------  --------  -------   ------  ------      -------
normal        20                       128   1-00:00:00 
test          40                         2     00:30:00 

attente longue avant l'execution d'un job

Le calcul des priorités de passage se fait selon un calcul de priorité basé sur 3 critères :

  • QOS sélectionnée (test ou pas)
  • Valeur de fair-share de l'account (calculée à partir de la part de calcul et de l'utilisation faite précédemment)
  • Age du job

Si vous êtes avec un nombre petit et loin derrière les jobs qui s'exécutent et si vous êtes sur plusieurs projets, utiliser le projet qui a le moins consommé.

Ce calcul ne convient pas car nous souhaiterions favoriser les logins qui font les simulations longues, plutôt que de chercher à répartir la charge sur tous les logins. Nous sommes à la recherche d'exemples concrets de situation d'attente qui nous paraissent anormales. Prenez le temps de nous les signaler, svp.