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 juillet 2014 à l'Espe de l'Université de Strasbourg, qui héberge le mésocentre de l'Université.

La formation a eu lieu à l'Espe Alsace, 141 Avenue de Colmar, 67100 Strasbourg. Accès : Tram A/E, Arrêt "Krimmeri/Stade de la Meinau".

Il s'agissait de la 2ème édition de cette école, qui a rencontré un vif succès en 2013.

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.

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 détaillé

lundi 07/07

10:00 10:30 Pas de support disponible Pas de résumé disponible

Accueil

10:30 12:30 Pas de résumé disponible

Introduction

Andres S. Charif-Rubial (Université Versailles St Quentin)

Télécharger le support Slides
Visionner l'enregistrement vidéo Vidéo
12:30 14:00 Pas de support disponible Pas de résumé disponible

Repas

14:00 17:30 Pas de résumé disponible

Optimisation de base et vectorisation

Romaric David

Télécharger le support Slides
Télécharger le support Archive
Visionner l'enregistrement vidéo Vidéo

mardi 08/07

09:00 12:30

Caches

Josef Weidendorfer (TUM)

Télécharger le support Slides
Visionner l'enregistrement vidéo Vidéo
Visionner l'enregistrement vidéo Vidéo
Télécharger le support Archive
  • 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
12:30 14:00 Pas de support disponible Pas de résumé disponible

Repas

14:00 17:30

Benchmark

Laurent Gatineau (NEC)

Télécharger le support Slides
Visionner l'enregistrement vidéo Vidéo
Visionner l'enregistrement vidéo Vidéo
  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/07

09:00 12:30

Message-Passing Interface - Selected Topics and Best Practices

Florian Janetzko (Juelich Supercomputing Centre)

Télécharger le support Slides
Visionner l'enregistrement vidéo Vidéo
Visionner l'enregistrement vidéo Vidéo
The Message-Passing Interface (MPI) is a widely-used standard library for programming parallel applications using the distributed-memory model. In the first part of this talk we will give a short overview over concepts and properties of modern HPC hardware architectures as well as basic programming concepts. A brief introduction into a design strategy for parallel algorithms is presented. The focus of the second part will be on the Message-Passing interface. After a short overview over general MPI properties and features we will present selected MPI topics including Derived Datatypes, MPI_Info objects and One-sided Communication and discuss best practices for their usage.
12:30 14:00 Pas de support disponible Pas de résumé disponible

Repas

14:00 17:30

Introduction to Performance Analysis

Florian Janetzko (Juelich Supercomputing Centre)

Télécharger le support Slides
Visionner l'enregistrement vidéo Vidéo
Visionner l'enregistrement vidéo Vidéo
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/07

09:00 12:30

Optimisation de noyaux CUDA avec les outils de « profiling » Nvidia

Julien Demouth (Nvidia)

Visionner l'enregistrement vidéo Vidéo
Visionner l'enregistrement vidéo Vidéo
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

Introduction aux entrées-sorties parallèles

Philippe Wautelet (IDRIS/CNRS)

Télécharger le support Partie 1
Télécharger le support Partie 2
Visionner l'enregistrement vidéo Vidéo
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/07

09:00 12:30

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

Philippe Wautelet (IDRIS/CNRS)

Télécharger le support Slides
Visionner l'enregistrement vidéo Vidéo
Visionner l'enregistrement vidéo Vidéo
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)