rsnt_translations
56,519
edits
No edit summary |
No edit summary |
||
Line 23: | Line 23: | ||
L'ensemble minimal des instructions CPU supporté est AVX2, de façon générale <code>x86-64-v3</code>. Même la couche de compatibilité qui offre les commandes Linux de base est compilé avec des optimisations pour ces commandes. | L'ensemble minimal des instructions CPU supporté est AVX2, de façon générale <code>x86-64-v3</code>. Même la couche de compatibilité qui offre les commandes Linux de base est compilé avec des optimisations pour ces commandes. | ||
==== Changements aux modules par défaut ==== | |||
=== Changements aux modules par défaut === | |||
Le compilateur par défaut GCC plutôt que Intel. Nous compilons avec Intel uniquement les applications qui démontrent une meilleure performance avec Intel. CUDA devient une extension de OpenMPI plutôt que le contraire, c'est-à-dire que MPI pour CUDA est chargé au lancement si CUDA est chargé. Ceci permet de partager plusieurs bibliothèques MPI sur toutes les branches (CUDA ou non). | Le compilateur par défaut GCC plutôt que Intel. Nous compilons avec Intel uniquement les applications qui démontrent une meilleure performance avec Intel. CUDA devient une extension de OpenMPI plutôt que le contraire, c'est-à-dire que MPI pour CUDA est chargé au lancement si CUDA est chargé. Ceci permet de partager plusieurs bibliothèques MPI sur toutes les branches (CUDA ou non). | ||
Les versions par défaut des modules suivants ont été mises à jour : | Les versions par défaut des modules suivants ont été mises à jour : | ||
Line 35: | Line 33: | ||
* CUDA 11 => CUDA 12 | * CUDA 11 => CUDA 12 | ||
=== <code>StdEnv/2020</code> === | |||
== <code>StdEnv/2020</code> == | Cette plus récente version de notre environnement logiciel est celle qui a connu le plus de modifications. Les compilateurs par défaut sont passés à GCC 9.3.0 et Intel 2020.1. MPI par défaut est passée à Open MPI 4.0.3. | ||
Cette plus récente version de notre environnement logiciel est celle qui a connu le plus de modifications. Les compilateurs par défaut sont passés à GCC 9.3.0 et Intel 2020.1. MPI par défaut est passée à Open MPI 4.0.3. | |||
Activez cet environnement avec la commande | Activez cet environnement avec la commande | ||
{{Command|module load StdEnv/2020}} | {{Command|module load StdEnv/2020}} | ||
====Amélioration de la performance==== | |||
===Amélioration de la performance=== | Les binaires générés avec le compilateur Intel supportent automatiquement les jeux d’instructions AVX2 et AVX512. Techniquement, ce sont des binaires multiarchitecture, aussi appelés [https://en.wikipedia.org/wiki/Fat_binary fat binaries]. Ceci signifie que quand vous utilisez une grappe comme Cedar ou Graham qui ont connu plusieurs générations de processeurs, vous n’avez plus besoin de charger manuellement un des modules <tt>arch</tt> si vous utilisez des paquets logiciels générés avec le compilateur Intel. | ||
Les binaires générés avec le compilateur Intel supportent automatiquement les jeux d’instructions AVX2 et AVX512. Techniquement, ce sont des binaires multiarchitecture, aussi appelés [https://en.wikipedia.org/wiki/Fat_binary fat binaries]. Ceci signifie que quand vous utilisez une grappe comme Cedar ou Graham qui ont connu plusieurs générations de processeurs, vous n’avez plus besoin de charger manuellement un des modules <tt>arch</tt> si vous utilisez des paquets logiciels générés avec le compilateur Intel. | |||
Certains paquets logiciels installés auparavant avec GCC ou Intel se trouvent maintenant à un niveau plus bas de la hiérarchie, ce qui fait que le même module est visible peu importe le compilateur qui est chargé; c’est le cas par exemple pour les modules [[R/fr|R]] et pour plusieurs paquets en bio-informatique pour lesquels le module <code>gcc</code> devait auparavant être chargé. Ceci a été rendu possible par des optimisations spécifiques aux architectures CPU que nous avons effectuées sous le niveau du compilateur. | Certains paquets logiciels installés auparavant avec GCC ou Intel se trouvent maintenant à un niveau plus bas de la hiérarchie, ce qui fait que le même module est visible peu importe le compilateur qui est chargé; c’est le cas par exemple pour les modules [[R/fr|R]] et pour plusieurs paquets en bio-informatique pour lesquels le module <code>gcc</code> devait auparavant être chargé. Ceci a été rendu possible par des optimisations spécifiques aux architectures CPU que nous avons effectuées sous le niveau du compilateur. |