Graham/fr: Difference between revisions

Jump to navigation Jump to search
Updating to match new version of source page
No edit summary
(Updating to match new version of source page)
Line 25: Line 25:
[[Transferring_data/fr|Transférer des données]]
[[Transferring_data/fr|Transférer des données]]


<div class="mw-translate-fuzzy">
= Particularités =
= Particularités =
</div>


* Selon notre politique, les nœuds de calcul de Graham n'ont pas accès à l'internet. Pour y faire exception, contactez le [[Technical support/fr|soutien technique]] avec les renseignements suivants:
* Selon notre politique, les nœuds de calcul de Graham n'ont pas accès à l'internet. Pour y faire exception, contactez le [[Technical support/fr|soutien technique]] avec les renseignements suivants:
Line 43: Line 45:
* Le total des tâches en exécution et en attente au même moment ne peut dépasser 1000. Dans le cas d'un lot de tâches (<i>array job</i>), chacune est comptée individuellement.
* Le total des tâches en exécution et en attente au même moment ne peut dépasser 1000. Dans le cas d'un lot de tâches (<i>array job</i>), chacune est comptée individuellement.


<div class="mw-translate-fuzzy">
=Stockage=
=Stockage=
</div>


{| class="wikitable sortable"  
{| class="wikitable sortable"  
Line 67: Line 71:
|}
|}


<div class="mw-translate-fuzzy">
=Interconnexion haute performance=
=Interconnexion haute performance=
</div>


Interconnexion InfiniBand Mellanox FDR (56Go/s.) et EDR (100Go/s.). FDR sert aux nœuds GPU et aux nœuds infonuagiques; tous les autres types de nœuds utilisent EDR. Un répartiteur (''director switch'') central de 324 ports rassemble les connexions des ilots CPU et GPU de 1024 cœurs. Les 56 nœuds infonuagiques se situent sur les nœuds CPU; ils sont regroupés sur un plus grand ilot et partagent 8 liens FDR vers le répartiteur.
Interconnexion InfiniBand Mellanox FDR (56Go/s.) et EDR (100Go/s.). FDR sert aux nœuds GPU et aux nœuds infonuagiques; tous les autres types de nœuds utilisent EDR. Un répartiteur (''director switch'') central de 324 ports rassemble les connexions des ilots CPU et GPU de 1024 cœurs. Les 56 nœuds infonuagiques se situent sur les nœuds CPU; ils sont regroupés sur un plus grand ilot et partagent 8 liens FDR vers le répartiteur.
Line 81: Line 87:
[https://docs.computecanada.ca/mediawiki/images/b/b3/Gp3-network-topo.png  Diagramme des interconnexions pour Graham]
[https://docs.computecanada.ca/mediawiki/images/b/b3/Gp3-network-topo.png  Diagramme des interconnexions pour Graham]


<div class="mw-translate-fuzzy">
=Visualisation=
=Visualisation=
</div>


Graham offre des nœuds dédiés pour la visualisation qui permettent uniquement les connexions VNC (<b>gra-vdi.alliancecan.ca</b>). Pour l'information sur comment les utiliser, voyez la page [[VNC/fr|VNC]].
Graham offre des nœuds dédiés pour la visualisation qui permettent uniquement les connexions VNC (<b>gra-vdi.alliancecan.ca</b>). Pour l'information sur comment les utiliser, voyez la page [[VNC/fr|VNC]].


<div class="mw-translate-fuzzy">
=Caractéristiques des nœuds=
=Caractéristiques des nœuds=
41,548 cœurs et 520 GPU sur 1,185 nœuds de différents types. TurboBoost est activé sur tous les nœuds.
41,548 cœurs et 520 GPU sur 1,185 nœuds de différents types. TurboBoost est activé sur tous les nœuds.
</div>


{| class="wikitable sortable"
{| class="wikitable sortable"
Line 128: Line 138:
Notez aussi que la mémoire allouée pour la tâche doit être suffisante pour les lectures et écritures dans la mémoire tampon qui sont effectuées par le noyau et le système de fichiers; lorsque ces opérations sont nombreuses, il est préférable de demander plus de mémoire que la quantité totale requise par les processus.
Notez aussi que la mémoire allouée pour la tâche doit être suffisante pour les lectures et écritures dans la mémoire tampon qui sont effectuées par le noyau et le système de fichiers; lorsque ces opérations sont nombreuses, il est préférable de demander plus de mémoire que la quantité totale requise par les processus.


<div class="mw-translate-fuzzy">
= GPU =
= GPU =
Les trois générations de GPU Tesla, de la plus ancienne à la plus récente, sont :  
Les trois générations de GPU Tesla, de la plus ancienne à la plus récente, sont :  
Line 133: Line 144:
* V100 Volta (incluant 2 nœuds avec interconnexion NVLINK)
* V100 Volta (incluant 2 nœuds avec interconnexion NVLINK)
* T4 Turing
* T4 Turing
</div>


P100 est la carte haute performance de NVIDIA pour usage général. V100 lui succède et offre deux fois plus de performance pour les calculs standards et huit fois plus de performance pour les calculs en apprentissage profond qui peuvent utiliser ses unités de calcul avec cœurs Tensor. La carte T4 plus récente est adaptée aux tâches d'apprentissage profond; elle n'est pas efficace pour les calculs double précision, mais sa performance en simple précision est bonne; elle possède aussi des cœurs Tensor et peut traiter les calculs à précision réduite avec les entiers.
P100 est la carte haute performance de NVIDIA pour usage général. V100 lui succède et offre deux fois plus de performance pour les calculs standards et huit fois plus de performance pour les calculs en apprentissage profond qui peuvent utiliser ses unités de calcul avec cœurs Tensor. La carte T4 plus récente est adaptée aux tâches d'apprentissage profond; elle n'est pas efficace pour les calculs double précision, mais sa performance en simple précision est bonne; elle possède aussi des cœurs Tensor et peut traiter les calculs à précision réduite avec les entiers.


<div class="mw-translate-fuzzy">
== Nœuds GPU Pascal ==
== Nœuds GPU Pascal ==
</div>


Il s'agit des cartes GPU par défaut de Graham. Pour soumettre des tâches, voyez [[Using GPUs with Slurm/fr|Ordonnancement Slurm des tâches avec GPU]]. Si vous demandez un GPU pour une tâche avec --gres=gpu:1 ou --gres=gpu:2, elle sera assignée à n'importe quel type de GPU disponible. Vous pouvez par contre demander un type en particulier. La configuration de tâches pour ces cartes est relativement simple puisque tous les nœuds Pascal n'ont que deux GPU P100.
Il s'agit des cartes GPU par défaut de Graham. Pour soumettre des tâches, voyez [[Using GPUs with Slurm/fr|Ordonnancement Slurm des tâches avec GPU]]. Si vous demandez un GPU pour une tâche avec --gres=gpu:1 ou --gres=gpu:2, elle sera assignée à n'importe quel type de GPU disponible. Vous pouvez par contre demander un type en particulier. La configuration de tâches pour ces cartes est relativement simple puisque tous les nœuds Pascal n'ont que deux GPU P100.


<div class="mw-translate-fuzzy">
== Nœuds GPU Volta ==
== Nœuds GPU Volta ==
Graham a neuf nœuds GPU Volta au total :
Graham a neuf nœuds GPU Volta au total :
* dans sept de ces nœuds, quatre GPU sont connectés à chaque socket CPU, à l'exception d'un nœud qui possède six GPU avec trois par socket;
* dans sept de ces nœuds, quatre GPU sont connectés à chaque socket CPU, à l'exception d'un nœud qui possède six GPU avec trois par socket;
* les deux autres nœuds ont une interconnexion NVLINK à large bande passante.
* les deux autres nœuds ont une interconnexion NVLINK à large bande passante.
</div>


<b>Les nœuds sont disponibles à tous les utilisateurs pour des durées d'exécution maximales de 7 jours</b>.   
<b>Les nœuds sont disponibles à tous les utilisateurs pour des durées d'exécution maximales de 7 jours</b>.   
Line 151: Line 167:
IMPORTANT : Déterminez le nombre de CPU à demander en appliquant un ratio CPU/GPU de 3.5 ou moins sur des nœuds de 28 cœurs. Par exemple, si votre tâche doit utiliser 4 GPU, vous devriez demander <b>au plus 14 cœurs CPU</b> et pour utiliser 1 GPU, demander <b>au plus 3 cœurs CPU</b>. Les utilisateurs peuvent faire exécuter quelques tâches de test de moins d'une heure pour connaître le niveau de performance du code.
IMPORTANT : Déterminez le nombre de CPU à demander en appliquant un ratio CPU/GPU de 3.5 ou moins sur des nœuds de 28 cœurs. Par exemple, si votre tâche doit utiliser 4 GPU, vous devriez demander <b>au plus 14 cœurs CPU</b> et pour utiliser 1 GPU, demander <b>au plus 3 cœurs CPU</b>. Les utilisateurs peuvent faire exécuter quelques tâches de test de moins d'une heure pour connaître le niveau de performance du code.


<div class="mw-translate-fuzzy">
Les deux plus récents nœuds Volta ont 40 cœurs et le nombre de cœurs par GPU demandé doit être ajusté à la hausse selon le cas; une tâche peut par exemple utiliser 5 cœurs CPU par GPU. Ces nœuds sont aussi interconnectés. Si vous voulez utiliser un de ces nœuds, il faut ajouter au script de soumission de la tâche le paramètre <tt>constraint=cascade,v100</tt>.
Les deux plus récents nœuds Volta ont 40 cœurs et le nombre de cœurs par GPU demandé doit être ajusté à la hausse selon le cas; une tâche peut par exemple utiliser 5 cœurs CPU par GPU. Ces nœuds sont aussi interconnectés. Si vous voulez utiliser un de ces nœuds, il faut ajouter au script de soumission de la tâche le paramètre <tt>constraint=cascade,v100</tt>.
</div>


Exemple avec un seul GPU
Exemple avec un seul GPU
Line 185: Line 203:
Les nœuds Volta de Graham ont un disque local rapide qui devrait être utilisé si la tâche exige beaucoup d'opérations I/O. Dans la tâche, la variable d'environnement <code>$SLURM_TMPDIR</code> donne la localisation du répertoire temporaire sur le disque. Vous pouvez y copier vos fichiers de données au début du script avant d'exécuter le programme, et y copier vos fichiers de sortie à la fin du script. Comme tous les fichiers contenus dans <code>$SLURM_TMPDIR</code> sont supprimés quand la tâche est terminée, vous n'avez pas à le faire. Vous pouvez même [[Python/fr#Créer_un_environnement_virtuel_dans_vos_tâches | créer des environnements virtuels Python]] dans cet espace temporaire pour améliorer l'efficacité.
Les nœuds Volta de Graham ont un disque local rapide qui devrait être utilisé si la tâche exige beaucoup d'opérations I/O. Dans la tâche, la variable d'environnement <code>$SLURM_TMPDIR</code> donne la localisation du répertoire temporaire sur le disque. Vous pouvez y copier vos fichiers de données au début du script avant d'exécuter le programme, et y copier vos fichiers de sortie à la fin du script. Comme tous les fichiers contenus dans <code>$SLURM_TMPDIR</code> sont supprimés quand la tâche est terminée, vous n'avez pas à le faire. Vous pouvez même [[Python/fr#Créer_un_environnement_virtuel_dans_vos_tâches | créer des environnements virtuels Python]] dans cet espace temporaire pour améliorer l'efficacité.


<div class="mw-translate-fuzzy">
==Nœuds GPU Turing==
==Nœuds GPU Turing==
</div>


Ces nœuds s'utilisent comme les nœuds Volta, sauf que vous devriez les demander en indiquant  
Ces nœuds s'utilisent comme les nœuds Volta, sauf que vous devriez les demander en indiquant  
Line 193: Line 213:
Dans cet exemple, on demande deux cartes T4 par nœud.
Dans cet exemple, on demande deux cartes T4 par nœud.


==Nœuds GPU Ampere GPU==  
<div class="mw-translate-fuzzy">
==Nœuds GPU Ampere GPU==
</div>


L'utilisation de ces nœuds est semblable à celle des nœuds Volta, sauf que pour les obtenir, il faut spécifier  
L'utilisation de ces nœuds est semblable à celle des nœuds Volta, sauf que pour les obtenir, il faut spécifier  
35,887

edits

Navigation menu