Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
documentation:tools:sge [2017/12/26 20:34] – [Priorités] ltaulelldocumentation:tools:sge [2020/08/25 15:58] – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 ====== GridEngine ====== ====== GridEngine ======
- 
-{{INLINETOC}} 
  
  
Ligne 30: Ligne 28:
 est appliqué par GridEngine. Ceci afin de répartir plus équitablement les ressources disponibles. est appliqué par GridEngine. Ceci afin de répartir plus équitablement les ressources disponibles.
  
-===== SGE : Soumettre un job =====+===== GridEngine : Soumettre un job =====
  
 <code> <code>
Ligne 37: Ligne 35:
  
 <code bash> <code bash>
-qsub -V -m b -m e -e /path/to/workdir/ -o /path/to/workdir/ -q $QUEUE script+qsub -V -e /path/to/workdir/ -o /path/to/workdir/ -q $QUEUE script
  
 -V : export environment variables -V : export environment variables
--m b : mail @begin 
--m e : mail @end 
 -e : where to put error files -e : where to put error files
 -o : where to put output files -o : where to put output files
--q : file d'attente+-q : queue (file d'attente)
 </code> </code>
  
-**Il est plus simple de soumettre un script à SGE, qui contiendra plus d'options**. Voir [[documentation:tutorials:submit|la documentation complète pour soumettre un job]], ainsi que [[documentation:clusters:batch&#les_files_d_attente|la liste des files d'attente]].+**Il est plus simple de soumettre un script à GridEngine, qui contiendra plus d'options**. 
  
-==== Comment choisir les queues/sous-queues de test et productions adaptés ? ====+<note important>Certaines options ne fonctionnent pas directement en CLI, il faut passer par un script (exemple : envoie des mails début et fin)</note>
  
-De par les achats successifs de nœuds de calcul avec des architectures de génération différenteil n'était pas possible de définir une seule queue. Il est préférable d'avoir des queues différentes pour chaque architecture, afin d'atteindre des performances intéressantes pour chaque queue.+Voir [[documentation:tutorials:submit:accueil|la documentation complète pour soumettre un job]]ainsi que [[documentation:clusters:batch&#les_files_d_attente|la liste des files d'attente]].
  
-Concrètement le choix de la queue de "production" devrait se faire en fonction de l'objectif voulu :+==== Comment choisir les files d'attente, de test ou de productions, adaptées ? ====
  
-  * si le critère principal est la rapidité de l'exécution, il faut regarder quelles sont les queues disponibles pour recevoir le job. L'utilisation des commandes du type ''qstat -g c'' devraient être la base de ce choix.  +De par les achats successifs de nœuds de calcul avec des architectures de génération différente, il n'était pas possible de définir une seule file d'attente. Il est préférable d'avoir des files d'attentes différentes pour chaque architectureafin d'atteindre des performances intéressantes pour chaque file d'attente.
-  * si le critère principal est le grand nombre de ressources (p.ex. un job avec beaucoup de cœursun job avec beaucoup de mémoire RAM), alors il faut plutôt s'orienter vers les queues qui possèdent un grand nombre de ressources (au moins les ressources demandées par le job)même si le temps d'attente dans la queue est plus important+
  
-Évidemment, la commande ci-dessus et [[documentation:clusters:batch&#les_files_d_attente|la liste des files d'attente]] devraient guider le choix de la queue.+Concrètement le choix de la file d'attente de "production" devrait se faire en fonction de l'objectif voulu :
  
-Et bien sur, pour la mise au point du code, il faut choisir une queue de test qui soit la plus proche de la queue de "production" envisagée (i.e. même type de nœuds de calcul). P.ex. ''r815lin128ib'' a été choisie pour la queue de production, il faut choisir ''r815_ib_test'' pour les tests. +  * si le critère principal est la rapidité de l'exécution, il faut regarder quelles sont les files d'attentes disponibles pour recevoir le job. L'utilisation des commandes du type ''qstat -g c'' devraient être la base de ce choix.  
-===== SGE : Les autres commandes utiles =====+  * si le critère principal est le grand nombre de ressources (p.ex. un job avec beaucoup de cœurs, un job avec beaucoup de mémoire RAM), alors il faut plutôt s'orienter vers les files d'attentes qui possèdent un grand nombre de ressources (au moins les ressources demandées par le job), même si le temps d'attente dans la file d'attente est plus important.  
 + 
 +Évidemment, la commande ci-dessus et [[documentation:clusters:batch&#les_files_d_attente|la liste des files d'attente]] devraient guider votre choix. 
 + 
 +Et bien sur, pour la mise au point du code, il faut choisir une file d'attente de test qui soit la plus proche de la file d'attente de "production" envisagée (i.e. même type de nœuds de calcul). P.ex. ''r815lin128ib'' a été choisie pour la file d'attente de production, il faut choisir ''r815_ib_test'' pour les tests. 
 +===== GridEngine : Les autres commandes utiles =====
  
 ==== Surveiller les jobs ==== ==== Surveiller les jobs ====
Ligne 69: Ligne 69:
 <code>qstat -u login </code> <code>qstat -u login </code>
  
-  * Voir l'état des files d'attente : +  * Voir l'état des files d'attente (et la liste des files d'attente) 
  
 <code>qstat -g c </code> <code>qstat -g c </code>
 +
 +  * Voir l'état des machines d'une queue
 +
 +<code>qstat -q <queue_name> -f</code>
  
   * Voir tous les jobs de tous les utilisateurs en exécution (running) :    * Voir tous les jobs de tous les utilisateurs en exécution (running) : 
Ligne 81: Ligne 85:
 <code>qstat -u "*" -s p </code> <code>qstat -u "*" -s p </code>
  
-  * Voir toutes les queues :  
- 
-<code>qconf -sql </code> 
- 
-(sql : show queues list)  
- 
-  * Voir l'état d'une queue (commande interne PSMN) :  
- 
-<code>qstatqueue c6100lin24ib </code> 
- 
-  * Voir l'état de toutes les queues (commande interne PSMN) :  
- 
-<code>qstatall </code> 
  
   * Voir l'état d'un job en cours :    * Voir l'état d'un job en cours : 
Ligne 107: Ligne 98:
 <code>qstat -j 87584 -g t -s r | less </code> <code>qstat -j 87584 -g t -s r | less </code>
  
-  * Enlever (clear) l'état Error d'un job : 
- 
-<code>qmod -cj <job_id> </code> 
  
   * Voir les informations d'un job après son achévement (long) :   * Voir les informations d'un job après son achévement (long) :
  
-<code>qacct -j 87584 | less</code>+<code>qacct -j 87584 -f /gridware/psmn/accounting | less</code>
  
   * Supprimer un job :    * Supprimer un job : 
Ligne 122: Ligne 110:
  
 <code>qdel -f 109383 </code> <code>qdel -f 109383 </code>
 +
 +
 +
 +<hidden>
 +Ces commandes ne fonctionnent plus depuis la migration 2018!
 +
 +  * <del>Voir l'état d'une queue (commande interne PSMN) : </del> ne fonctionne plus
 +
 +<code>qstatqueue c6100lin24ib </code>
 +
 +  * <del>Voir l'état de toutes les queues (commande interne PSMN) :</del> ne fonctionne plus
 +
 +<code>qstatall </code>
 +
 +  * Voir l'état d'un job en cours : 
 +
 +<code>qstat -j 87584 | less </code>
 +
 +  * <del>Enlever (clear) l'état Error d'un job :</del> ne fonctionne plus
 +
 +<code>qmod -cj <job_id> </code>
 +
 +
 +
 +</hidden>
  
 ==== Accounting ==== ==== Accounting ====
 +
 +<note important>Le fichier d'accounting est diffusé sur ''/gridware/psmn/accounting''</note>
 +
  
   * Détails des jobs sur les 30 derniers jours :   * Détails des jobs sur les 30 derniers jours :
  
-<code>qacct -d 30 -o <login> -j </code>+<code>qacct -f /gridware/psmn/accounting -d 30 -o <login> -j </code>
  
   * Consommation d'heures CPU (utime sur les 30 derniers jours) :   * Consommation d'heures CPU (utime sur les 30 derniers jours) :
  
-<code>qacct -d 30 -o <login> | tail -1 | awk '{print $3/3600}'</code>+<code>qacct -f /gridware/psmn/accounting -d 30 -o <login> | tail -1 | awk '{print $3/3600}'</code>
  
 ou ou
  
-<code>qacct -q "*" -o <login> -d 30 | awk '{ SUM += $5} END {print SUM/3600}'</code>+<code>qacct -f /gridware/psmn/accounting -q "*" -o <login> -d 30 | awk '{ SUM += $5} END {print SUM/3600}'</code>
  
   * Consommation d'heures CPU (utime de date à date, dans cet exemple, l'année 2012) :   * Consommation d'heures CPU (utime de date à date, dans cet exemple, l'année 2012) :
  
-<code>qacct -b 201201010000 -e 201212312359 -o <login> | tail -1 | awk '{print $3/3600}'</code> +<code>qacct -f /gridware/psmn/accounting -b 201201010000 -e 201212312359 -o <login> | tail -1 | awk '{print $3/3600}'</code>
- +
-==== Divers ==== +
- +
-  * lister les noeuds d'une queue +
-    * Show Queue +
-<code> +
-qconf -sq E5-2670deb64A +
-</code> +
-   +
-    * Show Group +
-<code> +
-qconf -shgrp @EquipatMeso64A +
-</code>+
  
 ==== Jobs qui ont des problèmes : ==== ==== Jobs qui ont des problèmes : ====
Ligne 188: Ligne 191:
   * w(aiting).   * w(aiting).
  
-===== SGE : Variables d'environnement =====+===== GridEngine : Variables d'environnement =====
  
-<note important>''#$'' est réservé à SGE pour effectuer des transmissions de paramètres (ex: ''#$ -cwd'' ou ''#$ -V'').</note>+<note important>''#$'' est réservé à GridEngine pour effectuer des transmissions de paramètres (ex: ''#$ -cwd'' ou ''#$ -V'').</note>
  
   * SGE_O_WORKDIR : répertoire d'où à été soumis le job, utilisable dans les scripts   * SGE_O_WORKDIR : répertoire d'où à été soumis le job, utilisable dans les scripts
   * NSLOTS : nombre de coeurs demandé   * NSLOTS : nombre de coeurs demandé
-  * JOB_ID : ID du job (unique) assigné par SGE+  * JOB_ID : ID du job (unique) assigné par GridEngine
   * JOB_NAME : nom du job (-N)   * JOB_NAME : nom du job (-N)
   * PE_HOSTFILE : fichier de hosts   * PE_HOSTFILE : fichier de hosts
  
- 
-==== Refs ==== 
- 
-  * http://www.blog.kubiak.co.uk/post/53 
-  * https://wiki.duke.edu/display/SCSC/SGE+Env+Vars 
-  * http://gridscheduler.sourceforge.net/htmlman/htmlman1/qsub.html?pathrev=V62u5_TAG (ENVIRONMENTAL VARIABLES) 
  
 ===== Références : ===== ===== Références : =====
Ligne 218: Ligne 215:
   * http://wiki.ibest.uidaho.edu/index.php/Tutorial:_Creating_dependent_jobs :!:   * http://wiki.ibest.uidaho.edu/index.php/Tutorial:_Creating_dependent_jobs :!:
   * https://sites.google.com/site/anshulkundaje/inotes/programming/clustersubmit/sun-grid-engine :!:   * https://sites.google.com/site/anshulkundaje/inotes/programming/clustersubmit/sun-grid-engine :!:
 +  * http://gridscheduler.sourceforge.net/htmlman/htmlman1/qsub.html?pathrev=V62u5_TAG (ENVIRONMENTAL VARIABLES)
 +