Améliorer les performances

Améliorer les performances de vos codes

Vous trouverez dans cette rubrique différents moyens de déboguer votre application, d’améliorer les performances et d’optimiser un calcul sur le système de calcul EOS.

Déboguer

Avant d’optimiser, il faut avoir un code exempt de bogues : le débogueur totalview peut vous aider à déboguer votre code

Compiler

  • Quel compilateur utiliser, et comment faire, surtout lorsqu’on utilise mpi ? On vous dit tout ici
  • Comment compiler spécifiquement pour le nœud à grande mémoire eosmesca1 ? C’est par là

Mesurer

Le code étant débogué, un profilage lors de l’exécution sur des jeux de données tests vous permettra d’identifier les "points chauds" :

  • Pour un code openMP, on peut utiliser Vtune
  • Plusieurs outils permettent de profiler un code MPI :

Améliorer les communications mpi

si vous utilisez la version BullxMPI de la bibliothèque MPI, vous pouvez (la plupart du temps) améliorer grandement les performances de votre code en utilisant la couche MXM

Améliorer les performances grâce à la MKL

La MKL (bibliothèque d’Intel) permet souvent d’améliorer les performances. Elle comprend BLAS, LAPACK, ScaLAPACK... :

Vectoriser

La vectorisation permet de tirer partie des processeurs Intel les plus récents, en leur permettant d’exécuter un grand nombre d’opérations simultanément (additions et multiplications sur des vecteurs).

Présentation générale de la vectorisation sur les processeurs Intel (en Anglais)
Les articles de cette rubrique

0 | 10 | 20

Stratégie « First Touch » Les aspects NUMA sont à considérer plus particulièrement lorsqu’on utilise un parallélisme en mémoire partagée (OpenMP). Sur (...)
Lire l'article ...
Article mis en ligne le 17 mai 2017
Objectifs : établir le lien entre les performances de calcul et la bande passante mémoire mettre en évidence le lien entre l’efficacité de la (...)
Lire l'article ...
Article mis en ligne le 17 mai 2017
dernière modification le 3 juillet 2017
Architecture des nœuds de calcul Le supercalculateur Eos est constitué de 612 nœuds bi-sockets. Chaque socket est constitué d’un processeur (...)
Lire l'article ...
Article mis en ligne le 15 mai 2017
dernière modification le 17 mai 2017
D’une manière générale, il est recommandé de compiler les codes Fortran / C / C++ sur EOS avec le module Intel. Dans ce cas, la librairie MKL est (...)
Lire l'article ...
Article mis en ligne le 7 février 2017
dernière modification le 11 avril 2017
Utilisation de la couche accélératrice MXM pour la bibliothèque BullxMPI.
Lire l'article ...
Article mis en ligne le 24 janvier 2017
dernière modification le 7 avril 2017
Comment mieux exploiter les architectures matérielles actuelles grâce à la vectorisation.
Lire l'article ...
Article mis en ligne le 30 novembre 2016
dernière modification le 7 avril 2017
Comment activer et optimiser la vectorisation d’un code au moment de la compilation.
Lire l'article ...
Article mis en ligne le 30 novembre 2016
dernière modification le 7 avril 2017
Dans cet article nous indiquons la manière d’utiliser l’outil Intel MPS sur le système EOS. Pré-requis : l’application doit être compilée avec la (...)
Lire l'article ...
Article mis en ligne le 7 mars 2016
dernière modification le 7 avril 2017
L’outil graphique Intel(r) Vector advisor est un outil convivial d’aide à la vectorisation des boucles de vos applications. Pour utiliser Intel(r) (...)
Lire l'article ...
Article mis en ligne le 29 janvier 2016
dernière modification le 7 avril 2017
ITAC est ou outil graphique permettant d’analyser le profil de communication d’un code parallélisé avec la librairie MPI. ITAC s’utilise en deux (...)
Lire l'article ...
Article mis en ligne le 18 janvier 2016
dernière modification le 7 avril 2017

0 | 10 | 20



Site réalisé sous SPIP
avec le squelette ESCAL-V3
Version : 3.86.44
Hébergeur : INP Toulouse