Face au besoin croissant de puissance de calcul et à des applications numériques toujours plus complexes, s'exécutant sur des architectures parallèles en constante évolution (many-coeurs, GPU, machines hybrides, ...), il est nécessaire de pouvoir mieux contrôler l'efficacité et la performance de nos applications.
Pour cela, le Groupe Calcul et la Maison de la Simulation organisent, dans le cadre d'equip@meso, une école sur l'optimisation qui se déroulera du 7 au 11 octobre 2013 à la Maison de la Simulation.
L'enjeu principal de cette école est d'être capable :
- d'identifier les points critiques d'une application dans son environnement d'exécution ;
- à l'aide d'outils adaptés, améliorer son fonctionnement et son utilisation.
En effet, la complexité des outils d'analyse suit celle des architectures et des applications, c'est pourquoi il est nécessaire de permettre à nos communautés d'acquérir rapidement les compétences nécessaires, en lien avec les équipes développant ces outils.
Au programme, nous aurons
- une introduction aux architectures actuelles et aux évolutions futures,
- un cours sur les optimisations de base et la vectorisation,
- un cours sur une bonne utilisation des caches,
- un cours sur le benchmarking,
- un cours sur les optimisations parallèles,
- un cours sur l'optimisation des entrées-sorties,
- un cours sur l'optimisation d'applications sur cartes graphiques.
Il n'y a pas de prérequis particuliers pour suivre cette école si ce n'est la connaissance d'un langage bas niveau (C/C++ ou Fortran) et les connaissances de base des systèmes Unix.
- The Memory Hierarchy
- Caches: Why & How do they work?
- Bad Memory Access Patterns
- How to not exploit Caches
- Cache Optimization Strategies
- How to exploit Caches even better
- Cache Analysis
- Measuring on real Hardware vs. Simulation
- Cache Analysis Tools
- Case Studies
- Hands-on
Introduction
- 1.1 Définitions
- 1.2 Objectifs des benchmarks
- 1.3 Les différentes phases d'un benchmark
Benchmarks synthétiques et éléments d'architecture
- 2.1 Processeur
- 2.2 Mémoire et cache
- 2.3 Réseau rapide
- 2.4 Système disques
- 2.5 Accélérateur
Benchmark applicatif
- 3.1 Portage et validation numérique
- 3.2 Classification de l'application
- 3.3 Profiling (CPU, MPI)
- 3.4 Projection des performances
Travaux pratiques
Contenu ouvert en fonction des utilisateurs:
- prise en main des benchmarks synthétiques
- classification / profiling d'un code utilisateur
The complexity of modern High-Performance-Computing systems impose great challenges on running parallel applications efficiently on them. Performance analysis is therefore a key issue to identify bottlenecks and efficiency problems in HPC applications in order to improve and optimize the performance of these applications. We start with an overview of different performance problems which frequently occur in parallel applications and give an introductions to the concepts of performance analysis. In the second part we will discuss selected performance analysis tools in more detail and show how to use them in order to identify bottlenecks.Optimisation de noyaux CUDA avec les outils de "profiling" Nvidia.
Julien Demouth (Nvidia)
Lors de cette session nous présenterons une méthode pour optimiser des noyaux GPU écrits en CUDA et nous la mettrons en pratique sur un cas concret. Pour améliorer les performances de notre application, nous utiliserons les outils de « profiling » : Nsight et Nvprof.Les supercalculateurs sont de plus en plus massivement parallèles. Dans ce contexte, l'importance des entrées-sorties devient de plus en plus cruciale. Le but de cette introduction est de présenter les différentes approches existantes pour réaliser des entrées-sorties performantes, leurs avantages et inconvénients, ainsi que les principes de fonctionnement des systèmes de fichiers parallèles. Des travaux pratiques seront réalisés pour mettre en oeuvre les concepts introduits lors de cette présentation.Expériences d'entrées-sorties sur architectures massivement parallèles
Philippe Wautelet (IDRIS/CNRS)
Les performances des systèmes d'entrées-sorties de plusieurs supercalculateurs ont été évaluées à l'aide d'une vraie application scientifique. Les résultats obtenus et les problèmes rencontrés seront exposés.
- Romaric David (Université de Strasbourg)
- Loïc Gouarin (Laboratoire de Mathématiques d'Orsay)
- Michel Kern (INRIA)
- Anne-Sophie Mouronval (Ecole Centrale Paris)
- Laurent Series (Ecole Centrale Paris)