Le mouvement pour la science ouverte a depuis quelques années pris une ampleur inédite. Les questions autour de la reproductibilité des résultats de publications scientifiques s’inscrivent naturellement dans cette dynamique. Elles sont d’une importance capitale pour assurer la transparence de la science, la confiance de la société, et sont en lien fort avec les problématiques d’éthique de la science. Dans la pratique, assurer la reproductibilité d’une publication est complexe, dépendant de nombreux facteurs dont l’accès aux éléments comme les données et les codes ne sont pas les moindres. En matière de reproductibilité computationnelle, l’ouverture des logiciels ne suffit bien souvent pas. L’objectif de cette session est de faire le point sur le sujet, en particulier dans le contexte un peu spécifique du calcul intensif.
Parallélisme et reproductibilité de modèles stochastiques : donner plusieurs chances au hasard
David Hill
Les simulations stochastiques parallèles sont trop souvent présentées comme non reproductibles. Pourtant, toute personne souhaitant produire un travail scientifique de qualité doit veiller à la reproductibilité numérique des résultats de simulation. D’une part, pour la mise au point des programmes nous avons besoin de la répétabilité des simulations dans le même contexte logiciel et matériel. D’autre part, nous avons besoin d’obtenir les mêmes conclusions scientifiques quand une autre équipe essayer la même expérience. Des différences significatives peuvent être observées dans les résultats des simulations stochastiques parallèles si le praticien n’applique pas les meilleures pratiques. En effet, les interfaces logicielles peuvent être trompeuses. Sachant que les générateurs de nombres pseudo-aléatoires sont déterministes, il est possible de reproduire les mêmes résultats numériques pour des simulations stochastiques parallèles. Plusieurs cas applicatifs sont présentés. Une méthode rigoureuse permet de vérifier les résultats parallèles avec leurs homologues séquentiels avant un passage à l’échelle, renforçant ainsi la confiance dans les modèles proposés.C’est quoi, la reproductibilité d’un calcul ? Et la réplicabilité, c’est pareil ou c’est autre chose ? [2] Pourquoi c’est important pour la science ouverte ? Pourquoi c’est important pour la science tout court ? Qui s’intéresse concrètement à la reproductibilité ou réplicabilité de mes calculs ? Que dois-je faire pour que mon calcul soit le plus reproductible et réplicable possible ? Comment puis- je vérifier si le calcul de quelqu’un d’autre est reproductible ou réplicable (ou les deux) ? Et pour le calcul intensif, ça marche aussi ? [1] Je répondrai brièvement à toutes ces questions, dont certaines seront traitées en détail par les orateurs suivants.
[1] K. Hinsen. La reproductibilité des calculs coûteux. 1024, 18, 11–14, 2021. doi:10.48556/SIF.1024.18.11. [2] K. Hinsen. Reproducibility and replicability of computer simulations. https://khinsen.net/keynote-acm-rep-24/, 2024. ACM REP’24.
La question de la reproductibilité computationnelle est complexe et repose sur de nombreux facteurs. Cette présentation propose un panorama des outils et des bonnes pratiques permettant de renforcer la transparence, la robustesse et la reproductibilité des résultats de calcul. Nous aborderons des aspects méthodologiques tels que la gestion du développement du code, les licences, l’ouverture et la diffusion des données, mais aussi les différents environnements logiciels disponibles, les pratiques autour de la documentation, l’archivage ...Reproduction des résultats de parallélisation du code DynELA : Une étude de cas sur la pérennité des résultats de recherche
Olivier Pantalé
Cette étude présente la reproduction des résultats d’un article publié en 2005 concernant la paral- lélisation du code de calcul par éléments finis DynELA [1]. Ce code, développé entre 1997 et 2005 au Laboratoire Génie de Production de l’ENIT, permet la simulation numérique de structures méca- niques soumises à des impacts en grandes déformations thermomécaniques. L’objectif était d’évaluer la reproductibilité des résultats et la robustesse des stratégies de parallélisation proposées, tout en identifiant les défis liés à la pérennisation des codes de recherche. La première difficulté rencontrée a été la récupération du code source original, dispersé sur différents supports numériques obsolètes. Une version fonctionnelle a été reconstruite en fusionnant les fichiers sources de la version parallèle avec ceux de la version standard 1.0. La méthodologie a nécessité une réorganisation de l’arborescence des sources et l’utilisation de CMake pour générer les Makefiles. Le code a été compilé avec le compilateur C++ 7.4.0 sur Ubuntu 18.04.4 LTS, en utilisant les biblio- thèques de parallélisation OpenMP. Cette adaptation a permis de surmonter les différences entre les environnements de développement de 2005 et actuels. Les tests ont été effectués sur un serveur Dell R730 équipé de 2 processeurs Intel Xeon E5-2650 v4 (12 cœurs chacun), configuration significative- ment différente de la machine Compaq Proliant 8000 SMP d’origine avec 8 processeurs Intel Xeon PIII 550/2Mb 32 bits. Malgré ces différences matérielles importantes, les résultats numériques obtenus sont remarquablement cohérents avec ceux de 2005, avec seulement quelques écarts minimes potentiellement liés à l’accu- mulation d’erreurs de virgule flottante entre architectures 32 bits et 64 bits. Les quatre méthodes de parallélisation originales ont été testées, confirmant la hiérarchie d’efficacité établie en 2005 : la méthode 4, intégrant un équilibrage de charge dynamique, offre le meilleur speedup en fonction du nombre de processeurs, tandis que la méthode 1 (parallélisation naïve) montre rapidement ses li- mites. L’algorithme d’équilibrage de charge a également été vérifié, démontrant l’évolution du nombre d’éléments attribués à chaque processeur au cours du temps pour optimiser les performances de calcul. Cette reproduction réussie démontre la robustesse des stratégies de parallélisation proposées dans l’article original, qui restent pertinentes malgré l’évolution significative des architectures informatiques en deux décennies. Elle souligne également l’importance cruciale d’une meilleure procédure d’archivage du code source pour garantir la pérennité et la reproductibilité des résultats de recherche, un enjeu majeur pour la communauté scientifique contemporaine. L’ensemble des résultats et méthodes a été publié en 2020 lors de la réalisation de ce travail [2]. [1] O. Pantalé. Parallelization of an object-oriented FEM dynamics code : influence of the stra- tegies on the Speedup. Advances in Engineering Software, 36(6), 361–373, 2005. doi : 10.1016/j.advengsoft.2005.01.003. [2] O. Pantalé. [Rp] Parallelization of an object-oriented FEM dynamics code. ReScience C, 6(1), #8, 2020. doi :10.5281/zenodo.3901241.
- Céline Acary-Robert
- Violaine Louvet