High Performance Computing


Exemple de supercalculateur BULL.

Description du domaine

Le HPC, ou calcul à haute performance, consiste à développer des algorithmes de calculs s’appliquant sur des machines puissantes, généralement des supercalculateurs possédant plusieurs CPU, ou GPU et une grosse quantité de mémoire RAM.
Travailler dans le domaine du HPC consiste à savoir réaliser de manière efficace la parallélisation pour accélérer des calculs qui serait trop longs à réaliser sur des machines standards.
La demande de calcul sur le HPC est généralement lié à la mise en place de simulations numériques de taille importante (simulation météo, calcul de structures sur maillage, etc), ou pour l’analyse de données de grandes tailles tel que pour le Big Data.

La mise en place de la parallélisation peut se réaliser suivant différents aspects:

  • Parallélisation par threads en utilisant des outils de types OpenMP.
  • Parallélisation par processus communiquants en utilisant des outils de type MPI.
  • Parallélisation sur GPU par l’utilisation de shaders ou de languages de GPGPU tels qu’OpenCL ou Cuda.

Le travail dans le domaine du HPC peut nécessiter à la fois un bonne compréhension du calcul réalisé afin de l’optimiser au mieux ainsi qu’une bonne maitrise du langage de programmation et des optimisations possibles sur l’architecture utilisée.

Intégration dans la formation IMI

Le parcours IMI prépare au domaine du HPC par le biais de la programmation efficace en C++ ainsi que de la programmation GPU.

Les modules liés au calcul à haute performance sont les suivants:

  • Programmation générique en C++ (4ETI)
  • Programmation GPU (5ETI)

Notons que la majeure prépare aux bases de développement générique s’appliquant à la majorité des machine. Elle ne prépare pas spécifiquement au développement en Fortran utilisé sur d’anciens code de calculs, ni au développement sur architecture Tesla.

Stages d’anciens

– Rendu volumique sur GPU, GE Healthcare
– Parallélisation pour des cartes radars, Infineon

Comments are closed