Difference between revisions of "Frequently Asked Questions/fr"

From CC Doc
Jump to: navigation, search
(Created page with "Si la tâche a effectivement été terminée parce qu'elle exige plus de mémoire que la quantité demandée, le terme ''killed'' sera compris dans le message d'erreur en sortie.")
 
(75 intermediate revisions by 2 users not shown)
Line 2: Line 2:
 
__TOC__
 
__TOC__
  
 +
== Mot de passe oublié ==
 +
Pour réinitialiser votre mot de passe pour accéder aux grappes de Calcul Canada, cliquez sur https://ccdb.computecanada.ca/security/forgot.
 +
 +
==  Transfert de fichiers sur les systèmes de fichiers ''scratch'', ''home'' et ''project'' ==
 +
Sur [[Cedar/fr|Cedar]] et [[Graham/fr|Graham]], les quotas pour ''scratch'' et  ''home'' sont par utilisateur, alors qu'ils sont par projet pour le système de fichiers [[Project layout/fr|''project'']]. Comme les quotas sur le système de fichiers [[Lustre]] est présentement basé sur le groupe propriétaire des fichiers, il faut s'assurer que les fichiers soient associés au bon groupe. Pour ''scratch'' et ''home''  le bon groupe est typiquement le groupe qui possède le même nom que votre nom d'utilisateur. Pour ''project'', le nom du groupe a la forme <tt>prefix-piusername</tt> où <tt>prefix</tt> est un de <tt>def</tt>, <tt>rrg</tt> ou <tt>rpp</tt>.
 +
 +
=== De ''scratch'' vers ''home''===
 +
Puisque les quotas de ces systèmes de fichiers sont basés sur votre groupe personnel, vous devriez pouvoir effectuer les transferts avec
 +
{{Command|mv $HOME/scratch/some_file $HOME/some_file}}
 +
 +
=== De ''scratch'' ou ''home'' vers ''project'' ===
 +
De ''scratch'' ou ''home'' vers ''project'', '''n'utilisez pas''' la commande <tt>mv</tt>. Utilisez plutôt <tt>rsync</tt> avec les options suivantes :
 +
 +
{{Command|rsync -axvpH --no-g --no-p  $HOME/scratch/some_directory $HOME/projects/<project>/some_other_directory}}
 +
 +
Les options <tt>--no-g</tt> et <tt>--no-p</tt> sont très importantes pour que les fichiers copiés vers ''project'' soient associés au bon groupe.
 +
 +
Une fois les fichiers copiés correctement, ils peuvent être supprimés de votre espace ''scratch''.
  
 
== Message d'erreur ''Disk quota exceeded'' avec les systèmes de fichiers de l'espace projet ==
 
== Message d'erreur ''Disk quota exceeded'' avec les systèmes de fichiers de l'espace projet ==
Line 30: Line 48:
 
Avec [[Transferring_data#Rsync|rsync]], utilisez la commande suivante pour transférer à votre répertoire projet un répertoire qui serait localisé à distance&nbsp;:
 
Avec [[Transferring_data#Rsync|rsync]], utilisez la commande suivante pour transférer à votre répertoire projet un répertoire qui serait localisé à distance&nbsp;:
 
<pre>
 
<pre>
$ rsync -axvpH --no-g --no-p  remote_user@remote.system:remote/dir/path $HOME/project/$USER/
+
$ rsync -axvpH --no-g --no-p  remote_user@remote.system:remote/dir/path $HOME/projects/<project>/$USER/
 
</pre>
 
</pre>
 
La compression des données améliorera le débit de transfert&nbsp;:
 
La compression des données améliorera le débit de transfert&nbsp;:
 
<pre>
 
<pre>
$ rsync -axvpH --no-g --no-p  --compress-level=5 remote_user@remote.system:remote/dir/path $HOME/project/$USER/
+
$ rsync -axvpH --no-g --no-p  --compress-level=5 remote_user@remote.system:remote/dir/path $HOME/projects/<project>/$USER/
 
</pre>
 
</pre>
  
Line 41: Line 59:
  
 
Si vous êtes le propriétaire des fichiers et que vous voulez les associer à un groupe de projet différent, utilisez la commande <tt>chgrp</tt>. Si vous devez modifier le propriétaire du groupe pour plusieurs utilisateurs, contactez le [[Technical support/fr|soutien technique]].
 
Si vous êtes le propriétaire des fichiers et que vous voulez les associer à un groupe de projet différent, utilisez la commande <tt>chgrp</tt>. Si vous devez modifier le propriétaire du groupe pour plusieurs utilisateurs, contactez le [[Technical support/fr|soutien technique]].
 +
 +
Vous pouvez aussi utiliser la commande <tt>chmod g+s <directory name></tt> pour que les fichiers créés dans ce répertoire soient tous membres du même groupe que le répertoire.
 +
 +
=== Autre explication ===
 +
 +
Chaque fichier sous Linux appartient à la fois à un utilisateur et à un groupe.
 +
Par défaut, tout fichier que vous créez vous appartient (''username'') et votre groupe porte le même nom. Le propriétaire est donc '''username:username'''. Votre groupe a été créé au même moment où votre compte a été créé et vous êtes le seul utilisateur dans ce groupe.
 +
 +
La propriété du fichier vaut pour votre répertoire ''home'' et pour l'espace ''scratch'', comme ici
 +
 +
<pre>
 +
                              Description                Space          # of files
 +
                      Home (user username)              15G/53G            74k/500k
 +
                  Scratch (user username)          1522G/100T            65k/1000k
 +
                  Project (group username)            34G/2048k            330/2048
 +
            Project (group def-professor)            28k/1000G              9/500k
 +
</pre>
 +
 +
Les quotas pour ''home'' et ''scratch'' sont fixés sur la base du '''username'''.
 +
 +
Les deux autres lignes sont pour les groupes '''username''' et '''def-professor''' dans l'espace projet. Il n'est pas important que les utilisateurs soient propriétaires des fichiers dans cet espace; par contre le groupe propriétaire des fichiers déterminera la limite du quota.
 +
 +
Vous remarquez que vos fichiers occupent déjà 34Go dans l'espace projet et que la limite pour le groupe '''username''' est fixée à 2Mo, ce qui est très peu. Pour cette raison, vous ne pouvez y enregistrer plus de données parce que le groupe propriétaire n'a pas reçu une allocation pour plus d'espace.
 +
 +
Par contre, l'allocation pour le groupe '''def-professor''' (le groupe de votre professeur) n'utilise presque pas d'espace, mais dispose en fait de 1To. Les fichiers ici devraient appartenir à '''username:def-professor'''.
 +
 +
Dépendant du logiciel et de la méthode de copie des fichiers, le logiciel respectera la propriété du répertoire et désignera le bon groupe ou il conservera la propriété du fichier source; ce dernier comportement n'est pas souhaitable.
 +
 +
Vos données initiales appartiennent probablement à '''username:username'''; en les déplaçant, elles devraient appartenir à '''username:def-professor''', mais le logiciel insiste pour ne pas changer la propriété.
 +
 +
Pour corriger par exemple la propriété de données qui se trouveraient dans le répertoire '''data_dir''' de votre espace projet, utilisez
 +
commands:
 +
<pre>
 +
$ cd project/$USER
 +
$ chown -R username:def-professor data_dir
 +
</pre>
 +
 +
=== Fichiers dont le groupe propriétaire est incorrect ===
 +
Il peut s'avérer difficile de savoir quels sont les fichiers qui contribuent au dépassement du quota dans l'espace projet. Pour ce faire, utilisez la commande <code>find</code> avec <code>readlink</code>.
 +
{{Command|lfs find $(readlink $HOME/projects/*) -group $USER}}
 +
Cette commande trouvera les fichiers qui appartiennent au groupe unique de l'utilisateur, par exemple à <code>ymartin</code> dans l'exemple ci-dessus. Si <code>quota</code> indique en sortie qu'un groupe différent dépasse le quota, remplacez <code>$USER</code> par le nom de ce groupe.
  
 
Pour plus d'information, consultez la page [[Project layout/fr|Espace projet]].
 
Pour plus d'information, consultez la page [[Project layout/fr|Espace projet]].
Line 46: Line 105:
 
==Message d'erreur ''sbatch: error: Batch job submission failed: Socket timed out on send/recv operation'' ==
 
==Message d'erreur ''sbatch: error: Batch job submission failed: Socket timed out on send/recv operation'' ==
  
Vous pourriez recevoir ce message d'erreur si l'ordonnanceur est surchargé (voir la page [[Running jobs/fr|Exécuter des tâches]]). Nous tentons toujours d'augmenter la tolérance de Slurm à cet effet et d'éliminer les sources de surcharge ponctuelle, mais ceci est un projet de longue haleine. Notre recommandation est d'attendre environ une minute, puis d'utiliser <code>squeue -u $USER</code> pour voir si la tâche soumise paraît. Si la tâche n'est pas listée, soumettez-la à nouveau.
+
Vous pourriez recevoir ce message d'erreur si l'ordonnanceur est surchargé (voir la page [[Running jobs/fr|Exécuter des tâches]]). Nous tentons toujours d'augmenter la tolérance de Slurm à cet effet et d'éliminer les sources de surcharge ponctuelle, mais ceci est un projet de longue haleine. Notre recommandation est d'attendre environ une minute, puis d'utiliser <code>squeue -u $USER</code> pour voir si la tâche soumise paraît. Si la tâche n'est pas listée, soumettez-la de nouveau.
 
<br />
 
<br />
 
Notez que ce message survient dans certains cas même lorsque Slurm a accepté la tâche.
 
Notez que ce message survient dans certains cas même lorsque Slurm a accepté la tâche.
  
== Message d'erreur ''slurmstepd: error: Exceeded step memory limit at some point'' ==
+
==Temps d’attente des tâches==
 +
Vous pouvez savoir pourquoi vos tâches ont le statut <tt>PD</tt> (''pending'' pour en attente), en exécutant la commande <tt>squeue -u <username></tt>.
 +
 
 +
La colonne <tt>(REASON)</tt> contient <tt>Resources</tt> ou <tt>Priority</tt>.
 +
* <tt>Resources</tt> : la grappe est très occupée. Vous pouvez soit attendre, soit soumettre une tâche qui exige moins de ressources en termes de CPUs/nœud, GPUs, mémoire ou temps d’exécution.
 +
* <tt>Priority</tt> : la tâche est en attente en raison de sa basse priorité. Ceci survient lorsque vous et les autres membres du groupe de recherche avez utilisé plus que votre juste part des ressources récemment. Vous pouvez faire le suivi de votre utilisation des ressources avec la commande <tt>sshare</tt>  (voir [[Job scheduling policies/fr|Politique d’ordonnancement des tâches]]).
 +
 
 +
La colonne <tt>LevelFS</tt> indique votre utilisation des ressources de la grappe.
 +
*une valeur plus grande que un (1) indique que vous utilisez moins que votre juste part
 +
*une valeur plus petite que un (1) indique que vous consommez plus que votre juste part.
 +
Plus la valeur est proche de zéro, plus vous sur-utilisez les ressources et plus vos tâches en attente baissent en priorité. L’ordonnanceur «oublie» graduellement les sous-utilisations ou sur-utilisations potentielles des derniers mois. Notez également que la valeur de <tt>LevelFS</tt> est spécifique à la grappe en question. 
 +
 
 +
== Précision de START_TIME avec <tt>squeue</tt>  ==
 +
La commande <tt>squeue</tt> fournit des valeurs appelées à être fréquemment modifiées; ceci n'est pas très utile.
 +
 
 +
L'ordonnanceur [[Running jobs/fr|Slurm]] calcule une heure de début (START_TIME) dans le futur pour les tâches en attente qui sont de haute priorité. L'heure de début d'une tâche est déterminée par l'information du moment ː
 +
* quelles ressources seront libérées à la fin des tâches en cours, et
 +
* quelles ressources seront demandées par les tâches en attente dont la priorité est plus élevée.
 +
 
 +
La valeur de START_TIME n'est plus valide si
 +
* certaines tâches se terminent plus tôt que prévu et libèrent des ressources, ou
 +
* l'ordre de priorité est modifié, par exemple quand des tâches sont annulées ou qu'une nouvelle tâche avec une priorité plus élevée est soumise.
  
Ce message et le message similaire ''slurmstepd: error: Exceeded job memory limit at some point'' peuvent être trompeurs car dans certains cas, ils indiquent une condition sans gravité. Si la tâche semble s'être terminée normalement puisqu'elle a produit tous les résultats attendus, ne tenez pas compte de ces messages et ne demandez pas plus de mémoire pour les éviter.
+
Sur les grappes d'usage général, de nouvelles tâches sont soumises toutes les cinq secondes environ et de 30 à 50&nbsp;% des tâches se terminent plus tôt que prévu; Slurm revoit donc souvent l'ordre d'exécution des tâches qui lui sont soumises.
  
Si la tâche a effectivement été terminée parce qu'elle exige plus de mémoire que la quantité demandée, le terme ''killed'' sera compris dans le message d'erreur en sortie.  
+
Pour la plupart des tâches en attente, la valeur de START_TIME est N/A (''not available''), ce qui signifie que Slurm n'essaie pas d'en fixer l'heure de début.
  
However, if you are using job dependencies (<code>dependency=afterok:<jobid></code>), then either of the messages "Exceeded job memory limit" or "Exceeded step memory limit" probably means that the dependent job was cancelled. We are [https://bugs.schedmd.com/show_bug.cgi?id=3820 in discussion] with the Slurm development team about fixing this behaviour, as well as suppressing the misleading messages in non-fatal circumstances.
+
Pour les tâches qui sont en cours, la valeur de START_TIME obtenue par <tt>squeue</tt> est précise.

Latest revision as of 22:23, 8 May 2018

Other languages:
English • ‎français

Mot de passe oublié

Pour réinitialiser votre mot de passe pour accéder aux grappes de Calcul Canada, cliquez sur https://ccdb.computecanada.ca/security/forgot.

Transfert de fichiers sur les systèmes de fichiers scratch, home et project

Sur Cedar et Graham, les quotas pour scratch et home sont par utilisateur, alors qu'ils sont par projet pour le système de fichiers project. Comme les quotas sur le système de fichiers Lustre est présentement basé sur le groupe propriétaire des fichiers, il faut s'assurer que les fichiers soient associés au bon groupe. Pour scratch et home le bon groupe est typiquement le groupe qui possède le même nom que votre nom d'utilisateur. Pour project, le nom du groupe a la forme prefix-piusernameprefix est un de def, rrg ou rpp.

De scratch vers home

Puisque les quotas de ces systèmes de fichiers sont basés sur votre groupe personnel, vous devriez pouvoir effectuer les transferts avec

[name@server $] mv $HOME/scratch/some_file $HOME/some_file

De scratch ou home vers project

De scratch ou home vers project, n'utilisez pas la commande mv. Utilisez plutôt rsync avec les options suivantes :

[name@server $] rsync -axvpH --no-g --no-p  $HOME/scratch/some_directory $HOME/projects/<project>/some_other_directory

Les options --no-g et --no-p sont très importantes pour que les fichiers copiés vers project soient associés au bon groupe.

Une fois les fichiers copiés correctement, ils peuvent être supprimés de votre espace scratch.

Message d'erreur Disk quota exceeded avec les systèmes de fichiers de l'espace projet

Certains utilisateurs reçoivent ce message d'erreur ou un autre message similaire au sujet du quota en rapport avec leurs répertoires de l'espace projet. Des difficultés ont aussi été rapportées lors du transfert de fichiers vers leur répertoire /project à partir d'une autre grappe. Plusieurs de ces cas sont dus à des problèmes de propriété des fichiers.

Pour savoir si vous avez atteint ou dépassé le quota, utilisez diskusage_report.

[ymartin@cedar5 ~]$ diskusage_report
                             Description                Space           # of files
                     Home (user ymartin)             345M/50G            9518/500k
                  Scratch (user ymartin)              93M/20T           6532/1000k
                 Project (group ymartin)          5472k/2048k            158/5000k
            Project (group/def-zrichard)            20k/1000G              4/5000k

Cet exemple illustre un problème fréquent : l'espace projet de l'utilisateur ymartin contient trop de données dans des fichiers qui appartiennent au groupe ymartin. Ces données devraient se trouver dans des fichiers appartenant à def-zrichard.

En ce qui a trait aux deux dernières lignes,

  • Project (group ymartin) décrit les fichiers qui appartiennent au groupe ymartin; notez que le nom du groupe est le même que celui de l’utilisateur. Ce dernier est le seul membre du groupe et le quota de 2048Ko pour son groupe est très bas.
  • Project (group def-zrichard) décrit les fichiers qui appartiennent au groupe du projet. Il est possible que votre compte soit associé à plusieurs groupes de projet, dont les noms sont sous la forme def-zrichard, rrg-someprof-ab, ou rpp-someprof.

Dans cet exemple, les fichiers ont été associés au propriétaire du groupe ymartin plutôt qu’au propriétaire du groupe def-zrichard, ce qui est inattendu et non souhaitable.

Les nouveaux fichiers et répertoires créés dans /project sont automatiquement associés à un groupe du projet. Les raisons les plus fréquentes pour lesquelles cette association est fautive sont que

  • les fichiers et répertoires sont déplacés d’un espace /home à un espace /project en utilisant la commande mv plutôt que la commande cp;
  • les fichiers et répertoires sont transférés à partir d’une autre grappe à l’aide de rsync ou de scp avec une option forçant de conserver les mêmes caractéristiques de propriété; vérifiez donc les options que vous avez sélectionnées dans votre application de transfert de données.

Avec rsync, utilisez la commande suivante pour transférer à votre répertoire projet un répertoire qui serait localisé à distance :

$ rsync -axvpH --no-g --no-p  remote_user@remote.system:remote/dir/path $HOME/projects/<project>/$USER/

La compression des données améliorera le débit de transfert :

$ rsync -axvpH --no-g --no-p  --compress-level=5 remote_user@remote.system:remote/dir/path $HOME/projects/<project>/$USER/

Pour savoir quels groupes vous pouvez utiliser, lancez la commande

[name@server $] stat -c %G $HOME/projects/*/

Si vous êtes le propriétaire des fichiers et que vous voulez les associer à un groupe de projet différent, utilisez la commande chgrp. Si vous devez modifier le propriétaire du groupe pour plusieurs utilisateurs, contactez le soutien technique.

Vous pouvez aussi utiliser la commande chmod g+s <directory name> pour que les fichiers créés dans ce répertoire soient tous membres du même groupe que le répertoire.

Autre explication

Chaque fichier sous Linux appartient à la fois à un utilisateur et à un groupe. Par défaut, tout fichier que vous créez vous appartient (username) et votre groupe porte le même nom. Le propriétaire est donc username:username. Votre groupe a été créé au même moment où votre compte a été créé et vous êtes le seul utilisateur dans ce groupe.

La propriété du fichier vaut pour votre répertoire home et pour l'espace scratch, comme ici

                              Description                Space           # of files
                      Home (user username)              15G/53G             74k/500k
                   Scratch (user username)           1522G/100T            65k/1000k
                  Project (group username)            34G/2048k             330/2048
             Project (group def-professor)            28k/1000G               9/500k

Les quotas pour home et scratch sont fixés sur la base du username.

Les deux autres lignes sont pour les groupes username et def-professor dans l'espace projet. Il n'est pas important que les utilisateurs soient propriétaires des fichiers dans cet espace; par contre le groupe propriétaire des fichiers déterminera la limite du quota.

Vous remarquez que vos fichiers occupent déjà 34Go dans l'espace projet et que la limite pour le groupe username est fixée à 2Mo, ce qui est très peu. Pour cette raison, vous ne pouvez y enregistrer plus de données parce que le groupe propriétaire n'a pas reçu une allocation pour plus d'espace.

Par contre, l'allocation pour le groupe def-professor (le groupe de votre professeur) n'utilise presque pas d'espace, mais dispose en fait de 1To. Les fichiers ici devraient appartenir à username:def-professor.

Dépendant du logiciel et de la méthode de copie des fichiers, le logiciel respectera la propriété du répertoire et désignera le bon groupe ou il conservera la propriété du fichier source; ce dernier comportement n'est pas souhaitable.

Vos données initiales appartiennent probablement à username:username; en les déplaçant, elles devraient appartenir à username:def-professor, mais le logiciel insiste pour ne pas changer la propriété.

Pour corriger par exemple la propriété de données qui se trouveraient dans le répertoire data_dir de votre espace projet, utilisez commands:

$ cd project/$USER
$ chown -R username:def-professor data_dir

Fichiers dont le groupe propriétaire est incorrect

Il peut s'avérer difficile de savoir quels sont les fichiers qui contribuent au dépassement du quota dans l'espace projet. Pour ce faire, utilisez la commande find avec readlink.

[name@server $] lfs find $(readlink $HOME/projects/*) -group $USER

Cette commande trouvera les fichiers qui appartiennent au groupe unique de l'utilisateur, par exemple à ymartin dans l'exemple ci-dessus. Si quota indique en sortie qu'un groupe différent dépasse le quota, remplacez $USER par le nom de ce groupe.

Pour plus d'information, consultez la page Espace projet.

Message d'erreur sbatch: error: Batch job submission failed: Socket timed out on send/recv operation

Vous pourriez recevoir ce message d'erreur si l'ordonnanceur est surchargé (voir la page Exécuter des tâches). Nous tentons toujours d'augmenter la tolérance de Slurm à cet effet et d'éliminer les sources de surcharge ponctuelle, mais ceci est un projet de longue haleine. Notre recommandation est d'attendre environ une minute, puis d'utiliser squeue -u $USER pour voir si la tâche soumise paraît. Si la tâche n'est pas listée, soumettez-la de nouveau.
Notez que ce message survient dans certains cas même lorsque Slurm a accepté la tâche.

Temps d’attente des tâches

Vous pouvez savoir pourquoi vos tâches ont le statut PD (pending pour en attente), en exécutant la commande squeue -u <username>.

La colonne (REASON) contient Resources ou Priority.

  • Resources : la grappe est très occupée. Vous pouvez soit attendre, soit soumettre une tâche qui exige moins de ressources en termes de CPUs/nœud, GPUs, mémoire ou temps d’exécution.
  • Priority : la tâche est en attente en raison de sa basse priorité. Ceci survient lorsque vous et les autres membres du groupe de recherche avez utilisé plus que votre juste part des ressources récemment. Vous pouvez faire le suivi de votre utilisation des ressources avec la commande sshare (voir Politique d’ordonnancement des tâches).

La colonne LevelFS indique votre utilisation des ressources de la grappe.

  • une valeur plus grande que un (1) indique que vous utilisez moins que votre juste part
  • une valeur plus petite que un (1) indique que vous consommez plus que votre juste part.

Plus la valeur est proche de zéro, plus vous sur-utilisez les ressources et plus vos tâches en attente baissent en priorité. L’ordonnanceur «oublie» graduellement les sous-utilisations ou sur-utilisations potentielles des derniers mois. Notez également que la valeur de LevelFS est spécifique à la grappe en question.

Précision de START_TIME avec squeue

La commande squeue fournit des valeurs appelées à être fréquemment modifiées; ceci n'est pas très utile.

L'ordonnanceur Slurm calcule une heure de début (START_TIME) dans le futur pour les tâches en attente qui sont de haute priorité. L'heure de début d'une tâche est déterminée par l'information du moment ː

  • quelles ressources seront libérées à la fin des tâches en cours, et
  • quelles ressources seront demandées par les tâches en attente dont la priorité est plus élevée.

La valeur de START_TIME n'est plus valide si

  • certaines tâches se terminent plus tôt que prévu et libèrent des ressources, ou
  • l'ordre de priorité est modifié, par exemple quand des tâches sont annulées ou qu'une nouvelle tâche avec une priorité plus élevée est soumise.

Sur les grappes d'usage général, de nouvelles tâches sont soumises toutes les cinq secondes environ et de 30 à 50 % des tâches se terminent plus tôt que prévu; Slurm revoit donc souvent l'ordre d'exécution des tâches qui lui sont soumises.

Pour la plupart des tâches en attente, la valeur de START_TIME est N/A (not available), ce qui signifie que Slurm n'essaie pas d'en fixer l'heure de début.

Pour les tâches qui sont en cours, la valeur de START_TIME obtenue par squeue est précise.