Méthodes de programmation pour le calcul intensif
- Code de l'UE SPHYM126
-
Horaire
15 15Quadri 1
- Crédits ECTS 3
- Langue
- 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 Unix nécessaires à l'utilisation d'un cluster informatique.
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. Introduction à l'informatique évolutive (Machine Learning). Notions de Unix et initiation à l'utilisation d'un cluster informatique.
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 ou OpenACC. Introduction aux commandes UNIX et à l'utilisation d'un cluster informatique.
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.
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.