Narval/en: Difference between revisions

From Alliance Doc
Jump to navigation Jump to search
No edit summary
(Updating to match new version of source page)
Line 74: Line 74:


=Particularités liées aux processeurs AMD=
=Particularités liées aux processeurs AMD=
==Ensemble d'instructions supporté==
== Ensemble d'instructions pris en charge ==
Narval est équipé de processeurs AMD qui supportent les instructions AVX2. Cet ensemble d'instructions est le même qui est supporté par les CPUs Intel de la génération Haswell, trouvés sur Graham et sur les nœuds les plus anciens de Cedar. Les processeurs de Narval ne supportent pas l'ensemble d'instructions AVX512, supporté par les processeurs Intel de la génération Skylake, qui sont utilisés sur Béluga, Niagara, ainsi que sur les nœuds les plus récents de Cedar.  
Narval est équipé de processeurs AMD EPYC de 2e et 3e génération qui prennent en charge les instructions [https://fr.wikipedia.org/wiki/Advanced_Vector_Extensions#Advanced_Vector_Extensions_2 AVX2]. Cet ensemble d'instructions est le même que celui des processeurs Intel que l'on retrouve sur les nœuds de [[Béluga#Caract.C3.A9ristiques_des_n.C5.93uds|Béluga]], [[Cedar/fr#Caract.C3.A9ristiques_des_n.C5.93uds|Cedar]], [[Graham/fr#Caract.C3.A9ristiques_des_n.C5.93uds|Graham]] et [[Niagara/fr#Caract.C3.A9ristiques_des_n.C5.93uds|Niagara]]. Tout comme les processeurs AMD de Narval, les processeurs Intel de la génération [https://fr.wikipedia.org/wiki/Haswell_(microarchitecture) Haswell] sont, eux aussi, limités aux instructions AVX2 et les plus anciennes. Ainsi, une application compilée sur les nœuds ''Broadwell'' de [[Cedar/fr#Caract.C3.A9ristiques_des_n.C5.93uds|Cedar]] et [[Graham/fr#Caract.C3.A9ristiques_des_n.C5.93uds|Graham]] devrait fonctionner sur Narval. Si non, une recompilation sera nécessaire avec les bons paramètres d'architecture (voir la prochaine section).
 
Malheureusement, les processeurs AMD de Narval '''ne sont pas compatibles avec''' l'ensemble d'instructions [https://en.wikipedia.org/wiki/AVX-512 AVX512] des processeurs Intel (à partir de la génération [https://fr.wikipedia.org/wiki/Skylake Skylake]) que l'on retrouve sur les nœuds de [[Béluga#Caract.C3.A9ristiques_des_n.C5.93uds|Béluga]] et [[Niagara/fr#Caract.C3.A9ristiques_des_n.C5.93uds|Niagara]], de même que sur les nœuds les plus récents de [[Cedar/fr#Caract.C3.A9ristiques_des_n.C5.93uds|Cedar]] et [[Graham/fr#Caract.C3.A9ristiques_des_n.C5.93uds|Graham]]. Par conséquent, les applications compilées sur ces nœuds Intel relativement récents ne fonctionneront fort probablement pas sur Narval. Une recompilation sera sûrement nécessaire (voir la prochaine section).


==Compilation avec le compilateur Intel==
==Compilation avec le compilateur Intel==
Les compilateurs Intel peuvent compiler du code pour les processeurs AMD en utilisant l'ensemble d'instructions AVX2. Par contre, si vous avez compilé un code sur un système utilisant des processeurs Intel, et que vous avez utilisé les options <tt>-xXXXX</tt>, tels que <tt>-xCORE-AVX2</tt>, ceux-ci ne fonctionneront pas, car les compilateurs Intel ajoutent des instructions pour vérifier que le CPU utilisé est produit par Intel. Afin d'obtenir des exécutables qui sont compatibles à la fois avec les processeurs Intel et AMD, il faut plutôt utiliser l'option <tt>-march=core-avx2</tt>. Cependant l'option <tt>-xHOST</tt> est équivalent à <tt>-march=core-avx2</tt> sur Narval.
Les compilateurs Intel peuvent très bien compiler des applications pour les processeurs AMD de Narval, et ce, en se limitant aux ensembles d'instructions AVX2 et les plus anciens. Pour ce faire, il faut utiliser l'option <tt>-march=core-avx2</tt> du compilateur Intel, ce qui permet d'obtenir des exécutables qui sont compatibles à la fois avec les processeurs Intel et AMD.
 
Par contre, si vous avez compilé un code sur un système utilisant des processeurs Intel et que vous avez utilisé une ou des options <tt>-xXXXX</tt>, telle que <tt>-xCORE-AVX2</tt>, les applications compilées ne fonctionneront pas sur Narval, car les compilateurs Intel ajoutent des instructions supplémentaires pour vérifier que le processeur utilisé est un produit Intel. Cela étant dit, sur Narval, l'option <tt>-xHOST</tt> devient équivalente à <tt>-march=core-avx2</tt>.


==Environnements logiciels disponibles==
==Environnements logiciels disponibles==
[[Standard software environments/fr|L'environnement logiciel standard <tt>StdEnv/2020</tt>]] est l'environnement par défaut sur Narval. Les anciennes versions ont été volontairement bloquées. Si vous avez besoin d'un logiciel qui n'est disponible que sur une ancienne version de l'environnement standard, nous vous invitons à [[Technical support/fr|contacter notre soutien technique]].
[[Standard software environments/fr|L'environnement logiciel standard <tt>StdEnv/2020</tt>]] est l'environnement par défaut sur Narval. Les anciennes versions ont été volontairement bloquées. Si vous avez besoin d'un logiciel qui n'est disponible que sur une ancienne version de l'environnement standard, nous vous invitons à envoyer une demande à [[Technical support/fr|notre soutien technique]].


==Bibliothèques BLAS et LAPACK==
==Bibliothèques BLAS et LAPACK==
La bibliothèque Intel MKL fonctionne sur les processeurs AMD, mais elle n'est pas optimale. Nous étudions présentement l'option d'utiliser la bibliothèque [https://github.com/mpimd-csc/flexiblas FlexiBLAS] pour l'installation de prochaines versions de logiciel, afin de pouvoir changer dynamiquement l'implémentation de BLAS et LAPACK qui est utilisée, en fonction du vendeur du processeur. Si vous croyez que le code que vous exécutez est particulièrement sensible à la performance de BLAS et LAPACK, nous vous invitons à [[Technical support/fr|contacter notre soutien technique]].
La bibliothèque Intel MKL fonctionne sur les processeurs AMD, mais elle n'est pas optimale. Nous étudions présentement l'option d'utiliser la bibliothèque [https://github.com/mpimd-csc/flexiblas FlexiBLAS] pour l'installation de prochaines versions de logiciels, ce qui permettra de charger dynamiquement l'implémentation appropriée de BLAS et LAPACK en fonction du manufacturier du processeur. Si vous croyez que le code que vous exécutez est particulièrement sensible à la performance de BLAS et LAPACK, nous vous invitons à le rapporter à [[Technical support/fr|notre soutien technique]].

Revision as of 15:34, 15 October 2021

Other languages:
Availability: October, 2021
Login node: To be announced
Globus endpoint: To be announced
Data transfer node (rsync, scp, sftp,...): To be announced

Narval is a general purpose cluster designed for a variety of workloads; it is located at the École de technologie supérieure in Montreal. The cluster is named in honour of the narwhal, a species of whale which has occasionally been observed in the Gulf of St. Lawrence.

Site-specific policies

By policy, Narval's compute nodes cannot access the internet. If you need an exception to this rule, contact technical support with information about the IP address, port number(s) and protocol(s) needed as well as the duration and a contact person.

Crontab is not offered on Narval.

Each job on Narval should have a duration of at least one hour (five minutes for test jobs) and you cannot have more than 1000 jobs, running and queued, at any given moment. The maximum duration for a job on Narval is 7 days (168 hours).

Storage

HOME
Lustre filesystem, ~100 TB of space
  • Location of home directories, each of which has a small fixed quota.
  • You should use the project space for larger storage needs.
  • 50 GB of space and 500K files per user.
  • There is a daily backup of the home directories.
SCRATCH
Lustre filesystem, ~5 PB of space
  • Large space for storing temporary files during computations.
  • No backup system in place.
  • 20 TB of space and 1M files per user.
PROJECT
Lustre filesystem, ~15 PB of space
  • This space is designed for sharing data among the members of a research group and for storing large amounts of data.
  • 1 TB of space and 500K of files per group.
  • There is a daily backup of the project space.

For transferring data via Globus, you should use the endpoint specified on top of the actual page, while for tools like rsync and scp you can use a login node.

High-performance interconnect

The InfiniBand Mellanox HDR network links together all of the nodes of the cluster. Each hub of 40 HDR ports (200 Gb/s) can connect up to 66 nodes with HDR100 (100 Gb/s) with 33 HDR links divided in two (2) by special cables. The seven (7) remaining HDR links allow the hub to be connected to a rack containing the seven (7) cental HDR InfiniBand hubs. The islands of nodes are therefore connected by a maximum blocking factor of 33:7 (4.7:1). In contrast, the storage servers are connected by a much lower blocking factor in order to maximize the performance.

In practice the Narval racks contain islands of 48 or 56 regular CPU nodes. It is therefore possible to run parallel jobs using up to 3584 cores with a non-blocking network. For larger jobs or ones which are distributed in a fragmented manner across the network, the blocking factor is 4.7:1. The inter-connect remains a high-performance one nonetheless.

Node Characteristics

nodes cores available memory CPU storage GPU
1109 64 ~256000M 2 x AMD Rome 7532 @ 2.40 GHz 256M cache L3 1 x 960 GB SSD -
33 ~2048000M
158 48 ~512000M 2 x AMD Milan 7413 @ 2.65 GHz 128M cache L3 1 x SSD of 3.84 TB 4 x NVidia A100 (40 GB memory)

Particularités liées aux processeurs AMD

Ensemble d'instructions pris en charge

Narval est équipé de processeurs AMD EPYC de 2e et 3e génération qui prennent en charge les instructions AVX2. Cet ensemble d'instructions est le même que celui des processeurs Intel que l'on retrouve sur les nœuds de Béluga, Cedar, Graham et Niagara. Tout comme les processeurs AMD de Narval, les processeurs Intel de la génération Haswell sont, eux aussi, limités aux instructions AVX2 et les plus anciennes. Ainsi, une application compilée sur les nœuds Broadwell de Cedar et Graham devrait fonctionner sur Narval. Si non, une recompilation sera nécessaire avec les bons paramètres d'architecture (voir la prochaine section).

Malheureusement, les processeurs AMD de Narval ne sont pas compatibles avec l'ensemble d'instructions AVX512 des processeurs Intel (à partir de la génération Skylake) que l'on retrouve sur les nœuds de Béluga et Niagara, de même que sur les nœuds les plus récents de Cedar et Graham. Par conséquent, les applications compilées sur ces nœuds Intel relativement récents ne fonctionneront fort probablement pas sur Narval. Une recompilation sera sûrement nécessaire (voir la prochaine section).

Compilation avec le compilateur Intel

Les compilateurs Intel peuvent très bien compiler des applications pour les processeurs AMD de Narval, et ce, en se limitant aux ensembles d'instructions AVX2 et les plus anciens. Pour ce faire, il faut utiliser l'option -march=core-avx2 du compilateur Intel, ce qui permet d'obtenir des exécutables qui sont compatibles à la fois avec les processeurs Intel et AMD.

Par contre, si vous avez compilé un code sur un système utilisant des processeurs Intel et que vous avez utilisé une ou des options -xXXXX, telle que -xCORE-AVX2, les applications compilées ne fonctionneront pas sur Narval, car les compilateurs Intel ajoutent des instructions supplémentaires pour vérifier que le processeur utilisé est un produit Intel. Cela étant dit, sur Narval, l'option -xHOST devient équivalente à -march=core-avx2.

Environnements logiciels disponibles

L'environnement logiciel standard StdEnv/2020 est l'environnement par défaut sur Narval. Les anciennes versions ont été volontairement bloquées. Si vous avez besoin d'un logiciel qui n'est disponible que sur une ancienne version de l'environnement standard, nous vous invitons à envoyer une demande à notre soutien technique.

Bibliothèques BLAS et LAPACK

La bibliothèque Intel MKL fonctionne sur les processeurs AMD, mais elle n'est pas optimale. Nous étudions présentement l'option d'utiliser la bibliothèque FlexiBLAS pour l'installation de prochaines versions de logiciels, ce qui permettra de charger dynamiquement l'implémentation appropriée de BLAS et LAPACK en fonction du manufacturier du processeur. Si vous croyez que le code que vous exécutez est particulièrement sensible à la performance de BLAS et LAPACK, nous vous invitons à le rapporter à notre soutien technique.