Calcul Haute Performance
EnglishJ'ai développé une expertise en calcul haute performance (HPC) à travers mes expériences dans la recherche académique.
Hybridation de codes de calcul
Les architectures modernes sont fréquemment des architectures hybrides, avec des nœuds en mémoire partagée répartis de manière distribuée, ou avec des architectures mêlant CPU et GPU. Pour effectuer des tests et disposer d'un démonstrateur des possibles implémentations de solutions d'hybridation, j'ai écrit un solveur simple de l'équation de Laplace parallélisé en suivant diverses stratégies (OpenMP, OpenACC, CUDA).
DUMSES-Hybrid
J'ai travaillé au Service d'Astrophysique du CEA, en particulier au Laboratoire de Modélisation des Plasmas Astrophysiques, dans le projet COAST et dans l'équipe de Sébastien Fromang. J'ai participé à l'optimisation et à l'hybridation du code DUMSES, qui est issu du code RAMSES.
DUMSES-Hybrid est un logiciel libre (sous licence CeCILL-A & GNU/GPL) de simulation de systèmes astrophysiques, adapté à des architectures CPU et GPU. C'est un code de simulation de magnétohydrodynamique 3D, eulérien, utilisant des méthodes de Godunov de second ordre en coordonnées cartésiennes, cylindriques et sphériques. Le code est écrit en Fortran 90, hybridé en MPI/OpenMP et MPI/OpenACC.
Le dépôt officiel du logiciel est hébergé sur SourceSup, et cette présentation vous permettra d'en savoir plus sur le code, son utilisation, ses performances et son implémentation.
Entrées/sorties parallèles
Un enjeu important du calcul moderne est de parvenir à gérer efficacement les entrées/sorties lorsqu'un grand nombre de processeurs sont utilisés. J'ai développé un benchmark simple de test de bibliothèques d'entrées/sorties parallèles, écrit en Fortran 90, pour en mesurer l'efficacité et mettre à disposition de la communauté des implémentations simples de ces différentes bibliothèques.
Le dépôt est disponible sur GitHub, et une partie de cette présentation traite de cette question et des implémentations réalisées.
Typage et précision en Fortran
Un problème souvent ignoré par les développeur⋅se⋅s Fortran est le problème de typage des réels. J'ai développé un outil de conversion qui permet de s'affranchir de cette question sans passer par des options de compilation.
Licences logicielles
J'ai développé un intérêt particulier pour les questions de licences logicielles et de leur utilisation dans le cadre du développement de codes et de bibliothèques scientifiques. J'ai abordé cette question dans le cadre de conférences dans des laboratoires de recherche.