Lionel Boillot

 
Ingénieur Expert – Docteur dans l’équipe-projet Inria MAGIQUE-3D
email : lionel.boillot@inria.fr
Tel : +33 5 40 17 51 51
Page Internet personnelle : http://people.bordeaux.inria.fr/boillot
 

 

Calcul Scientifique et HPC (High-Performance Computing)

Le terme HPC (High Performance Computing) désigne la science regroupant l’informatique, plus précisément l’utilisation de machines massivement parallèles et les mathématiques appliquées, en particulier la simulation numérique et l’optimisation.

Je m’intéresse à toute la chaîne permettant une simulation numérique en parallèle.

Schémas numériques

Modéliser mathématiquement les problèmes physiques par des équations, puis discrétiser pour obtenir des sytèmes linéaires Ax=b.
En particulier, la méthode de Galerkin discontinu, DGM (Discontinuous Galerkin Method), se traduit par des algorithmes orientés HPC.

Algèbre linéaire

Résoudre les problèmes Ax=b, de façon directe en inversant la matrice ou itérative à travers des solveurs dédiés, en séquentiel ou parallèle.
Une dernière innovation majeure concerne les méthodes multigrille algébrique AMG (Algebraic MultiGrid), dépassant l’efficacité de Krylov.

Optimisations matérielles

Utiliser les capacités de calculs avancés intrinsèques à l’architecture machine, tout en favorisant la cohérence de la mémoire cache.
Les processeurs x86 permettent par exemple une vectorisation au travers des instructions SIMD (Single Instruction on Multiple Data).

Programmation parallèle

Permettre à un programme de s’exécuter sur plusieurs ordinateurs en même temps. Une implémenttaion classique repose sur de l’hybride MPI/OpenMP.
Un nouveau paradigme de parallélisme de tâches permet de dédier la gestion des ressources à un support d’exécution runtime

Utilisation d’accélérateurs

Traiter une partie des calculs hors du processeur CPU pour gagner en rapidité, par example par la programmation sur cartes garphiques, GPGPU.
Très récemment, l’architecture MIC (Many-Integrated Cores) des Intel Xeon Phi annonce les mêmes performances, sans avoir à utiliser CUDA.

——————————————

Outils de génie logiciel

  • Partitionnement de maillage par (Par)Metis ou (PT-)Scotch
  • Visualisation et post-traitement des données avec ParaView
  • Entrée/sorties I/O parallèles et solutions Big Data
  • Profiling mémoire et exécution parallèle par VTune
  • Gestionnaire de versions de code avec Git ou SVN
  • Compilation intelligente et portable par CMake

Les commentaires sont clos.