Acquis d'apprentissage

L'étudiant sera formé à des techniques plus avancées de programmation et à l'utilisation en lignes de commandes d'outils libres et performants. L'objectif principal du cours est la programmation en parallèle (utilisation des librairies OpenMP, MPI et OpenACC). L'étudiant appliquera en exercices différentes méthodes par différences finies pour la résolution de problèmes courants en physique. L'étudiant acquerra finalement les notions de Unix nécessaires à l'utilisation d'un cluster informatique.

Contenu

Travail en lignes de commandes. Installation d'un environnement de travail complet à partir d'outils libres et performants. Utilisation plus avancée du compilateur gfortran (compilation via un Makefile, optimisation, debugger, profiling). Techniques de Programmation en Parallèle : 1. Notions générales de parallélisme 2. Parallélisation avec OpenMP 3. Parallélisation avec MPI 4. Parallélisation via des job arrays 5. Parallélisation sur un GPU avec OpenACC. Méthodes par Différences Finies : 1. Dérivées Numériques 2. Electrostatique 3. Equation de Schrödinger 4. Stabilité numérique. Notions de Unix et initiation à l'utilisation d'un cluster informatique.

AVERTISSEMENT : ce cours s'adresse à des étudiants ayant un très bon niveau de programmation en Fortran 90.

Table des matières

1. Utilisation plus avancée du gfortran

  travail en ligne de commande

  utilisation de Makefile, debugger, profiling

  Introduction au cluster (Linux, compilateur ifort)

  Fortran 90 : notions avancées

 

2. Méthodes par différences finies

  Dérivées numériques

  Electrostatique

    Equation de Laplace, équation de Poisson

    Approche directe par résolution d'un système d'équations linéaires

    Méthode de Jacobi, méthode de Gauss-Seidel, méthode de sur-relaxation

  Equation de Schrödinger

    Approche par résolution de systèmes propres

     Etats propres d'un potentiel

     Structures de bandes

    Méthode des fractions continues

     Etats propres d'un potentiel

     Transmission à travers une barrière de potentiel

    Equation de Schrödinger dépendante du temps

  Stabilité numérique d'un schéma de discrétisation

 

3. Notions générales de parallélisme

  concepts de cpu time, wallclock time, speedup, efficiency, load balancing, multithreading

  loi d'Amdahl, comment paralléliser

  parallélisation automatique avec ifort

 

4. Parallélisation avec OpenMP

  OpenMP avec gfortran et ifort

  scripts à utiliser sur le cluster

  présentation de la librairie OpenMP

 

5. Parallélisation avec MPI

  MPI avec gfortran et PGI

  scripts à utiliser sur le cluster

  présentation de la librairie MPI

 

6. Utilisation de jobarrays sur le cluster

  Exécution de scripts en parallèle sous Windows

 

7. Parallélisation avec OpenACC (GPU)

  Compilateur PGI & PGI Profiler

  scripts à utiliser sur le cluster

  présentation de la librairie OpenACC

  comparaison entre différentes méthodes de parallélisation de l'équation de Poisson

 

Un syllabus est consacré aux méthodes par Différences Finies.

Exercices

Travail en lignes de commandes avec le compilateur gfortran. Compilation via un Makefile. Installation d'un environnement de travail complet. Compilation d'un exemple de base avec OpenMP. Résolution numérique de l'équation de Poisson. Calcul des états liés d'un potentiel harmonique. Calcul de la structure de bandes d'un potentiel périodique. Calcul de la diffusion électronique à travers une barrière de potentiel. Parallélisation d'un exercice au choix avec OpenMP. Introduction aux commandes UNIX et à l'utilisation d'un cluster informatique.

Méthodes d'enseignement

La partie théorique du cours sera donnée essentiellement avec un vidéoprojecteur. Les travaux pratiques pourront être réalisés sur un ordinateur personnel ou dans une salle d'ordinateurs.

Méthode d'évaluation

L'examen évaluera essentiellement le travail de l'année. L'étudiant devra montrer qu'il a effectivement acquis les différentes techniques présentées au cours. Il devra présenter ses solutions pour les travaux demandés pendant l'année.

Langue d'enseignement

Français