Description

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.

Programme

lundi 07/10

10:30 12:30 Télécharger le support Pas de résumé disponible

Introduction

par William Jalby (Université Versailles St Quentin)

12:30 14:00 Pas de support disponible Pas de résumé disponible

Repas

14:00 15:30 Télécharger le support Pas de résumé disponible

Optimisation de base et vectorisation

par Romaric David

15:30 16:00 Pas de support disponible Pas de résumé disponible

Pause

16:00 17:30 Télécharger le support Pas de résumé disponible

Optimisation de base et vectorisation

par Romaric David

mardi 08/10

09:00 10:30 Télécharger le support

Caches (Partie 1)

par David Büttner (TUM)

  • 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
10:30 11:00 Pas de support disponible Pas de résumé disponible

Pause

11:00 12:30 Télécharger le support

Caches (Partie 2)

par David Büttner (TUM)

  • Cache Analysis
  • Measuring on real Hardware vs. Simulation
  • Cache Analysis Tools
  • Case Studies
  • Hands-on
12:30 14:00 Pas de support disponible Pas de résumé disponible

Repas

14:00 17:30 Télécharger le support

Benchmark

par Laurent Gatineau (NEC)

  1. Introduction

    • 1.1 Définitions
    • 1.2 Objectifs des benchmarks
    • 1.3 Les différentes phases d'un benchmark
  2. 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
  3. 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
  4. Travaux pratiques

    • Contenu ouvert en fonction des utilisateurs:

      • prise en main des benchmarks synthétiques
      • classification / profiling d'un code utilisateur

mercredi 09/10

12:30 14:00 Pas de support disponible Pas de résumé disponible

Repas

14:00 17:30 Télécharger le support

Introduction to Performance Analysis

par Florian Janetzko (Juelich Supercomputing Centre)

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.

jeudi 10/10

09:00 12:30 Télécharger le support

Optimisation de noyaux CUDA avec les outils de "profiling" Nvidia.

par 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.
12:30 14:00 Pas de support disponible Pas de résumé disponible

Repas

14:00 17:30 Télécharger le support

Introduction aux entrées-sorties parallèles

par Philippe Wautelet (IDRIS/CNRS)

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.

vendredi 11/10

09:00 12:30 Télécharger le support

Expériences d'entrées-sorties sur architectures massivement parallèles

par 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.

Comité d'organisation

  • 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)