Méthodes de programmation pour le calcul intensif
- Code de l'UE SPHYM126
-
Horaire
15 15Quadri 1 + Quadri 2
- Crédits ECTS 3
-
Langue d'enseignement
Français
- Professeur Mayer Alexandre
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 Linux/Unix nécessaires à l'utilisation d'un cluster informatique pour le calcul intensif.
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).
Notions de Linux/Unix et initiation à l'utilisation d'un cluster informatique pour le calcul intensif (HPC).
Techniques de Programmation en Parallèle
Notions générales de parallélisme
Parallélisation avec OpenMP
Parallélisation avec MPI
Parallélisation via des job arrays
Parallélisation sur un GPU avec OpenACC
Méthodes par Différences Finies
Dérivées Numériques
Electrostatique
Equation de Schrödinger
Stabilité numérique.
AVERTISSEMENT : ce cours s'adresse à des étudiants ayant un très bon niveau de programmation en Fortran 90.
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.
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. 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 du calcul de la structure de bandes avec OpenMP. Introduction aux commandes Linux/UNIX et à l'utilisation d'un cluster pour le calcul intensif.
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.
Un examen écrit au Q1 évalue la partie théorique du cours (démonstrations, 6 points). Un examen oral au Q2 évalue le travail de l'année (14 points). 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 et être capable de répondre à des questions plus théoriques en lien avec le cours.
| Formation | Programme d’études | Bloc | Crédits | Obligatoire |
|---|---|---|---|---|
| Master 120 en sciences physiques | Finalité spécialisée en physique du vivant | 1 | 3 | Non |
| Master 120 en sciences physiques | Finalité approfondie | 1 | 3 | Non |
| Master 60 en sciences physiques | Standard | 1 | 3 | Non |
| Master 120 en sciences physiques | Finalité didactique | 1 | 3 | Non |
| Master 120 en sciences physiques | Finalité spécialisée en physique et data | 1 | 3 | Non |
| Master 120 en sciences physiques | Finalité spécialisée en physique du vivant | 2 | 3 | Non |
| Master 120 en sciences physiques | Finalité approfondie | 2 | 3 | Non |
| Master 120 en sciences physiques | Finalité didactique | 2 | 3 | Non |
| Master 120 en sciences physiques | Finalité spécialisée en physique et data | 2 | 3 | Non |