RECHERCHE REPRODUCTIBLE

Benjamin A. Antunes, David R.C. Hill

► To cite this version:

Benjamin A. Antunes, David R.C. Hill. RECHERCHE REPRODUCTIBLE: Comment les outils informatiques et le calcul scientifique impactent bien des disciplines. A paraître. hal-04572565

HAL Id: hal-04572565

https://hal.science/hal-04572565

Submitted on 11 May 2024

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# Recherche Reproductible : Comment les outils informatiques et le calcul scientifique impactent bien des disciplines

Benjamin A. Antunes, David R.C. Hill

► To cite this version:

Benjamin A. Antunes, David R.C. Hill. Recherche Reproductible: Comment les outils informatiques et le calcul scientifique impactent bien des disciplines. Atramenta-Stylit-Hachette, 142 p., 2024, ISBN 978-952-390-749-2. hal-04572565v3

HAL Id: hal-04572565

https://hal.science/hal-04572565v3

Submitted on 8 Jan 2025

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
RECHERCHE
REPRODUCTIBLE

Comment les outils
informatiques et le calcul
scientifique impactent bien des
disciplines

**Benjamin ANTUNES**

Doctorant au Laboratoire d'Informatique de
Modélisation et d'Optimisation des Système

**David R.C. HILL**

Professeur à l'Université Clermont Auvergne
LIMOS – UMR CNRS 6158
Clermont-Auvergne INP
Mines St. Etienne
Benjamin ANTUNES

David R.C. HILL

RECHERCHE
REPRODUCTIBLE

<figure><img src="image_2.png" /></figure>

Comment les outils informatiques et le calcul
scientifique impactent bien des disciplines

Atramenta – Hachette Livre
Table des matières

<table><tr><td>Table des matières</td><td>2</td></tr><tr><td>Avant-propos</td><td>4</td></tr><tr><td>Introduction</td><td>5</td></tr><tr><td>Définitions de la recherche reproductible</td><td>8</td></tr><tr><td>1.1. Evolution des terminologies</td><td>8</td></tr><tr><td>1.2. A propos de l'importance de la recherche reproductible</td><td>15</td></tr><tr><td>Crise de la reproductibilité : quelques exemples</td><td>19</td></tr><tr><td>Des oppositions au mouvement de la recherche reproductible</td><td>24</td></tr><tr><td>Pourquoi pouvons-nous perdre la reproductibilité ?</td><td>27</td></tr><tr><td>4.1. La science ouverte</td><td>28</td></tr><tr><td>4.2. Documentation</td><td>31</td></tr><tr><td>4.3. Statistiques</td><td>32</td></tr><tr><td>4.4. Culture scientifique</td><td>38</td></tr><tr><td>4.5. Environnement logiciel</td><td>40</td></tr><tr><td>4.6. Workflow</td><td>42</td></tr><tr><td>4.7. Génie logiciel</td><td>44</td></tr><tr><td>Les problèmes de reproductibilité propre au calcul haute performance</td><td>47</td></tr><tr><td>5.1. Exécution de programmes en parallèle</td><td>47</td></tr><tr><td>5.2. Simulations de Monte-Carlo et nombres pseudo-aléatoires</td><td>49</td></tr><tr><td>5.3. Optimisation</td><td>56</td></tr><tr><td>5.4. Hétérogénéité du matériel</td><td>58</td></tr><tr><td>5.5. Informatique quantique</td><td>61</td></tr><tr><td>5.6. Apprentissage artificiel</td><td>64</td></tr></table>
RECHERCHE
REPRODUCTIBLE

Comment les outils
informatiques et le calcul
scientifique impactent bien des
disciplines

**Benjamin ANTUNES**

Docteur en Informatique de l'Université
Clermont Auvergne

**David R.C. HILL**

Professeur à l'Université Clermont Auvergne
LIMOS – UMR CNRS 6158
Clermont-Auvergne INP
Mines St. Etienne
<table>
  <tbody>
    <tr>
      <td>5.7. Erreurs silencieuses (ou « soft errors »)</td>
      <td>66</td>
    </tr>
    <tr>
      <td><strong>Quelles solutions pour améliorer la reproductibilité ?</strong></td>
      <td><strong>69</strong></td>
    </tr>
    <tr>
      <td>6.1. Gestion des versions et archivage</td>
      <td>69</td>
    </tr>
    <tr>
      <td>6.2. Programmation lettrée et documentation</td>
      <td>71</td>
    </tr>
    <tr>
      <td>6.3. Workflow</td>
      <td>74</td>
    </tr>
    <tr>
      <td>6.4. Environnement logiciel</td>
      <td>78</td>
    </tr>
    <tr>
      <td>6.4.1. Gérer les dépendances</td>
      <td>78</td>
    </tr>
    <tr>
      <td>6.4.2. Machines virtuelles</td>
      <td>84</td>
    </tr>
    <tr>
      <td>6.4.3. Conteneurs</td>
      <td>88</td>
    </tr>
    <tr>
      <td>6.5. Calcul parallèle</td>
      <td>94</td>
    </tr>
    <tr>
      <td>6.5.1. La reproductibilité des calculs flottants</td>
      <td>94</td>
    </tr>
    <tr>
      <td>6.5.2. Enregistrer et rejouer</td>
      <td>96</td>
    </tr>
    <tr>
      <td>6.6. Gestion des erreurs silencieuses</td>
      <td>102</td>
    </tr>
    <tr>
      <td><strong>Exemples pratiques de reproduction d'articles et recommandations</strong></td>
      <td><strong>107</strong></td>
    </tr>
    <tr>
      <td><strong>Des problèmes ouverts concernant la recherche reproductible en calcul haute performance</strong></td>
      <td><strong>111</strong></td>
    </tr>
    <tr>
      <td>8.1. Portabilité des algorithmes, en particulier des générateurs de nombres pseudo-aléatoires</td>
      <td>111</td>
    </tr>
    <tr>
      <td>8.2. Reproductibilité des données dans le cadre du « Big data »</td>
      <td>112</td>
    </tr>
    <tr>
      <td>8.3. Reproductibilité des temps de calculs et optimisations</td>
      <td>112</td>
    </tr>
    <tr>
      <td>8.4. Education, collaboration et intégration</td>
      <td>113</td>
    </tr>
    <tr>
      <td>8.5. Reproductibilité avec les nouveaux paradigmes de calcul</td>
      <td>114</td>
    </tr>
    <tr>
      <td><strong>Conclusion</strong></td>
      <td><strong>116</strong></td>
    </tr>
    <tr>
      <td><strong>Références bibliographiques</strong></td>
      <td><strong>119</strong></td>
    </tr>
  </tbody>
</table>
Pour citer cet ouvrage :

Antunes B., Hill D.R.C. (2024). Recherche
Reproductible : Comment les outils informatiques
et le calcul scientifique impactent bien des
disciplines, Atramentra-Stylit-Hachette, ISBN 978-
952-390-749-2, 142 p.
Avant-propos

Cet ouvrage propose un état de l'art de la recherche reproductible. Il se concentre sur l'utilisation de l'informatique en science, et son impact sur la reproductibilité dans bien des domaines scientifiques. Nous étudions les divers problèmes et solutions existants, sur l'usage de l'informatique en général, et également plus particulièrement les défis techniques associés au calcul à hautes performances. Ce travail de recherche cible un public averti, ayant conscience de certaines difficultés techniques inhérentes à l'utilisation de l'informatique lors de nos recherches. Cet ouvrage s'adresse donc principalement aux chercheurs qui souhaiteraient faire un tour d'horizon de la situation concernant la recherche reproductible. Néanmoins, tout public avec quelques notions en informatique peut bénéficier de la lecture de ce livre afin de se sensibiliser à la notion de reproductibilité, ce qui peut être intéressant, surtout pour notre science « jeune » qu'est l'informatique, où ces notions sont rarement abordées durant les cursus universitaires.
# Sommaire

<table><tr><td>Sommaire</td><td>4</td></tr><tr><td>Avant-propos</td><td>6</td></tr><tr><td>Introduction</td><td>7</td></tr><tr><td>Définitions de la recherche reproductible</td><td>10</td></tr><tr><td>1.1. Evolution des terminologies</td><td>10</td></tr><tr><td>1.2. À propos de l'importance de la recherche reproductible</td><td>16</td></tr><tr><td>Crise de la reproductibilité : quelques exemples</td><td>21</td></tr><tr><td>Des oppositions au mouvement de la recherche reproductible</td><td>25</td></tr><tr><td>Pourquoi pouvons-nous perdre la reproductibilité ?</td><td>28</td></tr><tr><td>4.1. La science ouverte</td><td>29</td></tr><tr><td>4.2. Documentation</td><td>32</td></tr><tr><td>4.3. Statistiques</td><td>33</td></tr><tr><td>4.4. Culture scientifique</td><td>38</td></tr><tr><td>4.5. Environnement logiciel</td><td>40</td></tr><tr><td>4.6. Workflow</td><td>42</td></tr><tr><td>4.7. Génie logiciel</td><td>44</td></tr><tr><td>Les problèmes de reproductibilité propres au calcul haute performance</td><td>47</td></tr><tr><td>5.1. Exécution de programmes en parallèle</td><td>47</td></tr><tr><td>5.2. Simulations de Monte-Carlo et nombres pseudo-aléatoires</td><td>49</td></tr><tr><td>5.3. Optimisation</td><td>56</td></tr><tr><td>5.4. Hétérogénéité du matériel</td><td>57</td></tr><tr><td>5.5. Informatique quantique</td><td>60</td></tr><tr><td>5.6. Apprentissage artificiel</td><td>62</td></tr><tr><td>5.7. Erreurs silencieuses (ou « soft errors »)</td><td>65</td></tr><tr><td>Quelles solutions pour améliorer la reproductibilité ?</td><td>68</td></tr><tr><td>6.1. Gestion des versions et archivage</td><td>68</td></tr><tr><td>6.2. Programmation lettrée et documentation</td><td>69</td></tr></table>
## Introduction

La reproductibilité est reconnue comme l'un des piliers de la science. En 1660, la Royal Society adopta la devise « Nullius in verba », qui se traduit par « ne croire personne sur parole » (Royal Society 1660). Les philosophes des sciences s'accordent à dire que la reproductibilité est l'un des critères permettant de différencier la science de la pseudoscience. Depuis les années 2010, on constate une augmentation significative de l'intérêt international des scientifiques pour la recherche reproductible. Fanelli (2018) a montré une augmentation exponentielle du nombre de publications faisant référence au thème de la crise de la reproductibilité. Nous observons un nombre croissant de revues et de conférences préoccupées par la reproductibilité de leurs articles publiés (Drummond 2018; Bajpai, Bonaventure, et al. 2019). Nous pouvons également remarquer la création de journaux dédiés à la reproduction d'articles (Rougier et al. 2017). Le domaine de la recherche reproductible est très actif et en rapide évolution. Nous avons trouvé une étude fournissant un état de l'art de la reproductibilité dans le calcul scientifique (Ivie et Thain 2018), et plusieurs livres tentant de le faire (Desquilbet et al. 2019; National Academies of Sciences 2019; Randall et Welser 2018). Sans minimiser la qualité des travaux précédents, nous pensons que, comme cette thématique évolue, il est pertinent de mettre à jour nos connaissances et de fournir un état de l'art actualisé sur les définitions et les technologies utilisées dans la recherche reproductible car elles ont évolué récemment. Nous voulons offrir un point de vue supplémentaire, axé sur le calcul à hautes performances (que nous noterons HPC pour « High Performance Computing » en anglais). Alors que les travaux précédemment cités
<table>
  <tbody>
    <tr>
      <td>6.3. Workflow</td>
      <td>73</td>
    </tr>
    <tr>
      <td>6.4. Environnement logiciel</td>
      <td>76</td>
    </tr>
    <tr>
      <td>6.4.1. Gérer les dépendances</td>
      <td>76</td>
    </tr>
    <tr>
      <td>6.4.2. Machines virtuelles</td>
      <td>82</td>
    </tr>
    <tr>
      <td>6.4.3. Conteneurs</td>
      <td>86</td>
    </tr>
    <tr>
      <td>6.5. Calcul parallèle</td>
      <td>92</td>
    </tr>
    <tr>
      <td>6.5.1. La reproductibilité des calculs flottants</td>
      <td>92</td>
    </tr>
    <tr>
      <td>6.5.2. Enregistrer et rejouer</td>
      <td>94</td>
    </tr>
    <tr>
      <td>6.6. Gestion des erreurs silencieuses</td>
      <td>99</td>
    </tr>
    <tr>
      <td>Exemples pratiques de reproduction d'articles et recommandations</td>
      <td>104</td>
    </tr>
    <tr>
      <td>Des problèmes ouverts concernant la recherche reproductible en calcul haute performance</td>
      <td>108</td>
    </tr>
    <tr>
      <td>8.1. Portabilité des algorithmes, en particulier des générateurs de nombres pseudo-aléatoires</td>
      <td>108</td>
    </tr>
    <tr>
      <td>8.2. Reproductibilité des données dans le cadre du « Big data »</td>
      <td>109</td>
    </tr>
    <tr>
      <td>8.3. Reproductibilité des temps de calculs et optimisations</td>
      <td>109</td>
    </tr>
    <tr>
      <td>8.4. Education, collaboration et intégration</td>
      <td>110</td>
    </tr>
    <tr>
      <td>8.5. Reproductibilité avec les nouveaux paradigmes de calcul</td>
      <td>111</td>
    </tr>
    <tr>
      <td>Conclusion</td>
      <td>112</td>
    </tr>
    <tr>
      <td>Références bibliographiques</td>
      <td>116</td>
    </tr>
    <tr>
      <td>Index</td>
      <td>141</td>
    </tr>
  </tbody>
</table>
mettent l'accent sur la reproductibilité computationnelle et sont plus axés
sur la méthode scientifique globale ou sur les workflows comme Ivie et
Thain (2018), avec le HPC, nous sommes en première ligne où des
problèmes de reproductibilité spécifiques peuvent apparaître.

Compte tenu de l'importance croissante de la reproductibilité dans la
recherche scientifique, nous essaierons de répondre à cette question :
comment la recherche reproductible peut-elle être effectivement mise en
place dans le domaine du calcul haute performance ? En examinant les
définitions et les nuances de la recherche reproductible, nous explorons la
crise multifacette de la reproductibilité qui s'étend à divers domaines
scientifiques, mettant en évidence les défis spécifiques et les opportunités
présentées par le HPC. Nous analysons les facteurs contribuant à la perte
de reproductibilité, de la science ouverte et de la documentation à
l'ingénierie logicielle et à la complexité des workflows. De plus, nous
discutons des problèmes de reproductibilité uniques au HPC : les
problèmes liés au calcul parallèle, la génération de nombres aléatoires dans
les simulations de Monte Carlo parallèles, l'optimisation, l'hétérogénéité
matérielle, et les domaines émergents du calcul quantique et de
l'apprentissage automatique. L'ouvrage explore ensuite une gamme de
solutions conçues pour améliorer la reproductibilité, telles que le suivi de
versions, la programmation lettrée et la gestion avancée des workflows,
tout en abordant également les défis spécifiques au HPC tels que la
reproductibilité des calculs avec des nombres à virgule flottante et la
gestion des erreurs. À travers cette étude complète, nous visons à
actualiser notre compréhension de la recherche reproductible dans le HPC
et à contribuer au discours actuel sur le maintien de l'intégrité du calcul
scientifique à une époque où la reproductibilité de la recherche est
primordiale.
Avant-propos

Cet ouvrage propose un état de l'art de la recherche reproductible. Il se concentre sur l'utilisation de l'informatique en science, et son impact sur la reproductibilité dans bien des domaines scientifiques. Nous étudions les divers problèmes et solutions existants, sur l'usage de l'informatique en général, et également plus particulièrement les défis techniques associés au calcul à haute performance. Ce travail de recherche cible un public averti, ayant conscience de certaines difficultés techniques inhérentes à l'utilisation de l'informatique lors de nos recherches. Cet ouvrage s'adresse donc principalement aux chercheurs qui souhaiteraient faire un tour d'horizon de la situation concernant la recherche reproductible. Néanmoins, tout public avec quelques notions en informatique peut bénéficier de la lecture de ce livre afin de se sensibiliser à la notion de reproductibilité, ce qui peut être intéressant, surtout pour notre science « jeune » qu'est l'informatique, où ces notions commencent à peine à être abordées durant les cursus universitaires.
Nous présenterons dans un premier temps l'importance de la recherche reproductible et les définitions des différents termes utilisés dans ce domaine. Ensuite, nous montrerons comment la crise de la reproductibilité se produit dans de nombreux domaines scientifiques. Nous discuterons également du mouvement contre la montée de la recherche reproductible. Ensuite, nous discuterons des raisons pour lesquelles nous pourrions avoir une perte de reproductibilité, en mettant l'accent spécifiquement sur le calcul à hautes performances qui est le premier impacté. Enfin, nous présenterons les solutions actuelles existantes pour résoudre ces différents problèmes. Avant de conclure, nous parlerons de plusieurs problèmes ouverts dans le domaine de la recherche reproductible pour les applications de HPC.
## Introduction

La reproductibilité est reconnue comme l'un des piliers de la science. En 1660, la Royal Society adopta la devise « Nullius in verba », qui se traduit par « ne croire personne sur parole » (Royal Society 1660). Les philosophes des sciences s'accordent à dire que la reproductibilité est l'un des critères permettant de différencier la science de la pseudoscience. Depuis les années 2010, on constate une augmentation significative de l'intérêt international des scientifiques pour la recherche reproductible. Fanelli (2018) a montré une augmentation exponentielle du nombre de publications faisant référence au thème de la crise de la reproductibilité. Nous observons un nombre croissant de revues et de conférences préoccupées par la reproductibilité de leurs articles publiés (Drummond 2018; Bajpai, Bonaventure, et al. 2019). Nous pouvons également remarquer la création de journaux dédiés à la reproduction d'articles (Rougier et al. 2017). Le domaine de la recherche reproductible est très actif et en rapide évolution. Nous avons trouvé une étude fournissant un état de l'art de la reproductibilité dans le calcul scientifique (Ivie et Thain 2018), et plusieurs livres tentant de le faire (Desquilbet et al. 2019; National Academies of Sciences 2019; Randall et Welser 2018). Sans minimiser la qualité des travaux précédents, nous pensons que, comme cette thématique évolue, il est pertinent de mettre à jour nos connaissances et de fournir un état de l'art actualisé sur les définitions et les technologies utilisées dans la recherche reproductible car elles ont évolué récemment. Nous voulons offrir un point de vue supplémentaire, axé sur le calcul à haute performance (que nous noterons HPC pour « High Performance Computing » en anglais). Alors que les travaux précédemment cités mettent l'accent sur la reproductibilité computationnelle et sont plus axés sur la méthode scientifique globale ou sur les workflows comme Ivie et Thain (2018), avec
# Chapitre 1

## Définitions de la recherche reproductible

### 1.1. Evolution des terminologies

Trois termes principaux sont employés dans le domaine de la recherche reproductible : Reproductibilité, réplicabilité et répétabilité. Bien que définir la reproductibilité semble quelque chose d'évident, la réalité est qu'une définition consensuelle parmi les chercheurs et les différents domaines de recherche n'a été atteinte que très récemment.

### Les anciennes définitions

Voici un peu d'histoire récente 2020, « l'Association for Computing Machinery » (ACM) définissait ces termes comme suit :

- **Répétabilité** : même équipe, même protocole expérimental.

- **Reproductibilité** : équipe différente, protocole expérimental différent.

- **Réplicabilité** : équipe différente, même protocole expérimental.

Dans ces définitions, comme l'a déclaré Drummond (2009), « Reproducibility requires change, replicability avoids it », qui peut se traduire par « la reproductibilité exige des changements, la réplicabilité les évite ». La reproductibilité implique qu'une équipe différente, appliquant une méthode ou une expérience différente pour la même question scientifique, obtienne les mêmes conclusions scientifiques, renforçant ainsi la découverte. D'autre part, la réplicabilité vise à ce qu'une équipe différente atteigne les mêmes résultats avec une certaine précision, en utilisant les artefacts de l'article de la première équipe. Dans la littérature,
le HPC, nous sommes en première ligne où des problèmes de reproductibilité spécifiques peuvent apparaître.

Compte tenu de l'importance croissante de la reproductibilité dans la recherche scientifique, nous essaierons de répondre à cette question : comment la recherche reproductible peut-elle être effectivement mise en place dans le domaine du calcul haute performance ? En examinant les définitions et les nuances de la recherche reproductible, nous explorons la crise multifacette de la reproductibilité qui s'étend à divers domaines scientifiques, mettant en évidence les défis spécifiques et les opportunités présentées par le HPC. Nous analysons les facteurs contribuant à la perte de reproductibilité, de la science ouverte et de la documentation à l'ingénierie logicielle et à la complexité des workflows. De plus, nous discutons des problèmes de reproductibilité uniques au HPC : les problèmes liés au calcul parallèle, la génération de nombres aléatoires dans les simulations de Monte Carlo parallèles, l'optimisation, l'hétérogénéité matérielle, et les domaines émergents du calcul quantique et de l'apprentissage automatique. L'ouvrage explore ensuite une gamme de solutions conçues pour améliorer la reproductibilité, telles que le suivi de versions, la programmation lettrée et la gestion avancée des workflows, tout en abordant également les défis spécifiques au HPC tels que la reproductibilité des calculs avec des nombres à virgules flottantes et la gestion des erreurs. À travers cette étude complète, nous visons à actualiser notre compréhension de la recherche reproductible dans le HPC et à contribuer au discours actuel sur le maintien de l'intégrité du calcul scientifique à une époque où la reproductibilité de la recherche est primordiale. Une synthèse de cet ouvrage est disponible en anglais (Antunes et Hill, 2024) dans le journal Computer Science Review.

Nous présenterons dans un premier temps l'importance de la recherche reproductible et les définitions des différents termes utilisés dans ce domaine. Ensuite, nous montrerons comment la crise de la reproductibilité
les auteurs utilisaient parfois le mot « reproductibilité » pour se référer à la « réplicabilité », et vice versa. Conseillée par la NISO (National Information Standards Organization), l'ACM a changé ses définitions après 2020, échangeant les définitions entre reproductibilité et réplicabilité. La principale raison en était le besoin d'une meilleure correspondance avec la pratique des autres domaines de recherche.

## Les définitions actuelles

Le fait que l'informatique était l'un des seuls domaines à utiliser ces définitions était un argument pour suivre les conseils de standardisation de la NISO; l'ACM a donc changé ses définitions de reproductibilité et de réplicabilité. Voici les définitions de 2020, et actuelles, pour les deux termes :

- **Reproductibilité (Équipe différente, même expérience)** : la mesure peut être obtenue avec la précision déclarée par une équipe différente utilisant la même procédure de mesure, le même système de mesure, dans les mêmes conditions de fonctionnement, au même endroit ou dans un endroit différent lors de plusieurs essais. Pour les expériences informatiques, cela signifie qu'un groupe indépendant peut obtenir le même résultat en utilisant les propres artefacts de l'auteur.

- **Réplicabilité (Équipe différente, expérience différente)** : la mesure peut être obtenue avec la précision déclarée par une équipe différente, un système de mesure différent, dans un endroit différent lors de plusieurs essais. Pour les expériences informatiques, cela signifie qu'un groupe indépendant peut obtenir le même résultat en utilisant des artefacts qu'ils développent complètement indépendamment.
se produit dans de nombreux domaines scientifiques. Nous discuterons
également du mouvement contre la montée de la recherche reproductible.
Ensuite, nous discuterons des raisons pour lesquelles nous pourrions avoir
une perte de reproductibilité, en mettant l'accent spécifiquement sur le
calcul à haute performance qui est le premier impacté. Enfin, nous
présenterons les solutions actuelles existantes pour résoudre ces différents
problèmes. Avant de conclure, nous parlerons de plusieurs problèmes
ouverts dans le domaine de la recherche reproductible pour les applications
de HPC.
- Répétabilité (Même équipe, même expérience) : la mesure peut être obtenue avec la précision déclarée par la même équipe en utilisant la même procédure de mesure, le même système de mesure, dans les mêmes conditions de fonctionnement, au même endroit lors de plusieurs essais. Pour les expériences informatiques, cela signifie qu'un chercheur peut reproduire de manière fiable son propre calcul.

Pour illustrer ce problème de non-consensus des définitions, nous pouvons examiner la littérature. Nous nommons D1 le jeu de définitions proposées par l'ACM avant 2020, et D2 le jeu de définitions adoptées par l'ACM après 2020. La plupart des articles ne reprennent pas l'ensemble des trois termes : reproductibilité, répétabilité et réplicabilité.

Dans un article discutant de la reproductibilité en informatique (Hinsen 2014), Konrad Hinsen se rapproche des définitions D1. Pour l'article décrivant la création de leur journal ReScience, Rougier et al. (2017) utilisent des définitions en phase avec le jeu D2. Dans une présentation en 2017 (Hinsen 2017), Konrad Hinsen modifie sa vision des termes présentée en 2014 pour passer au sens proposé par le jeu D2. Dans leur article, Stanisic et al. (2015) se rapporte aux définitions D1. L'article de Cohen-boulakia et al. (2017) sur le thème des sciences de la vie est dans la catégorie D1. Drummond (2009) plébiscite le jeu de définitions D1. Le papier étudiant la reproductibilité de Collberg et Proebsting (2016) applique les définitions D1. Gundersen et Kjensmo (2018) utilise le jeu D1, il en est de même pour Bajpai et al. (2019) dans le domaine des réseaux. La National Academies of Sciences Engineering, and Medicine (2019) utilise le jeu de définitions D2 avec un fort impact (plus de 600 citations à ce jour). L'état de l'art le plus récent sur le thème de la reproductibilité des
# Chapitre 1

## Définitions de la recherche reproductible

### 1.1. Evolution des terminologies

Trois termes principaux sont employés dans le domaine de la recherche reproductible : Reproductibilité, réplicabilité et répétabilité. Bien que définir la reproductibilité semble être quelque chose d'évident, la réalité est qu'une définition consensuelle parmi les chercheurs et les différents domaines de recherche n'a été atteinte que très récemment.

#### Les anciennes définitions

Voici un peu d'histoire récente. En 2020, « l'Association for Computing Machinery » (ACM) définissait ces termes comme suit :

- **Répétabilité** : même équipe, même protocole expérimental.

- **Reproductibilité** : équipe différente, protocole expérimental différent.

- **Réplicabilité** : équipe différente, même protocole expérimental.

Dans ces définitions, comme l'a déclaré Drummond (2009), « Reproducibility requires change, replicability avoids it », qui peut se traduire par « la reproductibilité exige des changements, la réplicabilité les évite ». La reproductibilité implique qu'une équipe différente, appliquant une méthode ou une expérience différente pour la même question scientifique, obtienne les mêmes conclusions scientifiques, renforçant ainsi la découverte. D'autre part, la réplicabilité vise à ce qu'une équipe différente atteigne les mêmes résultats avec une certaine précision, en utilisant les artefacts de l'article de la première équipe. Dans la littérature, les auteurs utilisaient parfois le mot « reproductibilité » pour se référer à la
workflows en calcul scientifique (Ivie et Thain 2018) utilise également le jeu de définitions D1. Stodden a utilisé en 2011 (Stodden 2011) le jeu D1, puis est passée au jeu D2 en 2014 (Stodden et al. 2014). Plusieurs articles utilisent les trois termes reproductibilité, répétabilité et réplicabilité, mais la plupart utilisent la notion de « recherche reproductible » sans apporter explicitement de nuances aux différentes notions. C'était le cas dans notre article de 2013 (Hill et al. 2013), nous utilisions sans distinction le terme de reproductibilité au sens large de la philosophie des Sciences. Avec plus d'expérience dans le domaine, nous avons utilisé le jeu de définitions D1, dans (Hill 2015) et (Hill et al. 2017), où la reproductibilité fait référence à l'obtention de la même conclusion scientifique en réalisant potentiellement une autre expérience et la répétabilité le fait d'avoir les même résultats bits à bits pour pouvoir déboguer. Enfin dans (Hill 2022), nous utilisons le jeu de définitions D2 en conformité avec les avancées de l'ACM et de la « National Academies of Sciences, Engineering, and Medicine ».

Dans notre petit échantillon, qui comprend principalement des articles publiés par des auteurs actifs du domaine et bien cités, nous avons identifié huit articles qui utilisent les définitions fournies par l'ACM avant 2020 (D1) et qui ont été publiés entre 2009 et 2019. Quatre articles utilisent les nouvelles définitions de l'ACM (D2) dans un intervalle de temps similaire. De notre point de vue en tant qu'informaticiens, il semble que la majorité des travaux publiés que nous pouvons voir s'appuient sur les définitions obsolètes de l'ACM (avant 2020, D1). Une étude très intéressante de Barba (2018) a étudié quel champ scientifique utilisait plutôt une définition ou l'autre. Avec cette étude, nous réalisons que l'informatique était l'un des rares domaines à utiliser les définitions données au début de cette section (D1).
« réplicabilité », et vice versa. Conseillée par la NISO (National Information Standards Organization), l'ACM a changé ses définitions après 2020, échangeant les définitions entre reproductibilité et réplicabilité. La principale raison en était le besoin d'une meilleure correspondance avec la pratique des autres domaines de recherche.

## Les définitions actuelles

Le fait que l'informatique était l'un des seuls domaines à utiliser ces définitions était un argument pour suivre les conseils de standardisation de la NISO ; l'ACM a donc changé ses définitions de reproductibilité et de réplicabilité. Voici les définitions de 2020, et actuelles, pour les deux termes :

- Reproductibilité (Équipe différente, même expérience) : la mesure peut être obtenue avec la précision déclarée par une équipe différente utilisant la même procédure de mesure, le même système de mesure, dans les mêmes conditions de fonctionnement, au même endroit ou dans un endroit différent lors de plusieurs essais. Pour les expériences informatiques, cela signifie qu'un groupe indépendant peut obtenir le même résultat en utilisant les propres artefacts de l'auteur.

- Réplicabilité (Équipe différente, expérience différente) : la mesure peut être obtenue avec la précision déclarée par une équipe différente, un système de mesure différent, dans un endroit différent lors de plusieurs essais. Pour les expériences informatiques, cela signifie qu'un groupe indépendant peut obtenir le même résultat en utilisant des artefacts qu'ils développent complètement indépendamment.

- Répétabilité (Même équipe, même expérience) : la mesure peut être obtenue avec la précision déclarée par la même équipe en utilisant la même procédure de mesure, le même système de mesure, dans
<table><caption>Table 1: Tour d'horizons des définitions au sein de la recherche reproductible</caption><thead><tr><th></th><th>Définitions ACM<br>avant 2020<br>(anciennes)</th><th>Définitions ACM<br>après 2020<br>(actuelles)</th></tr></thead><tbody><tr><th>Reproductibilité</th><td>Equipe différente,<br>expérience différente</td><td>Equipe différente,<br>même expérience</td></tr><tr><th>Replicabilité</th><td>Equipe différente,<br>même expérience</td><td>Equipe différente,<br>expérience différente</td></tr><tr><th>Répétabilité</th><td>Même équipe, même<br>expérience</td><td>Même équipe, même<br>expérience</td></tr><tr><th>Classification des<br>définitions utilisées<br>par des auteurs du<br>monde de la<br>recherche<br>reproductible dans<br>leurs articles</th><td>(Hinsen 2014),<br>(Stanisic et al. 2015),<br>(Cohen-Boulakia et<br>al. 2017),<br>(Drummond 2009),<br>(Collberg and<br>Proebsting, 2016),<br>(Gundersen and<br>Kjensmo, 2018),<br>(Bajpai, Brunstrom,<br>et al. 2019), (Ivie and<br>Thain, 2018),<br>(Stodden 2011), (Hill<br>et al. 2013), (Hill<br>2015), (Hill 2019),<br>(Hill et al. 2017)</td><td>(Rougier et al. 2017),<br>(Hinsen 2017),<br>(National Academies<br>of Sciences 2019),<br>(Stodden et al. 2014)<br>(Hill 2022)</td></tr></tbody></table>

Les informations précédentes sont résumées dans la Table 1. Néanmoins, pour continuer définir précisément un concept, il est impératif de considérer des perspectives au-delà de son domaine immédiat (pour nous, l'informatique). Certaines définitions de la recherche reproductible sont spécifiques à chaque domaine, ce que nous voulons éviter dans le contexte de la reproductibilité, puisque nous voulons
les mêmes conditions de fonctionnement, au même endroit lors de
plusieurs essais. Pour les expériences informatiques, cela signifie
qu'un chercheur peut reproduire de manière fiable son propre
calcul.

Pour illustrer ce problème de non-consensus des définitions, nous
pouvons examiner la littérature. Nous nommons D1 le jeu de définitions
proposées par l'ACM avant 2020, et D2 le jeu de définitions adoptées par
l'ACM après 2020. La plupart des articles ne reprennent pas l'ensemble des
trois termes : reproductibilité, répétabilité et réplicabilité.

Dans un article discutant de la reproductibilité en informatique (Hinsen
2014), Konrad Hinsen se rapproche des définitions D1. Pour l'article
décrivant la création de leur journal ReScience, Rougier et al. (2017) utilisent
des définitions en phase avec le jeu D2. Dans une présentation en 2017
(Hinsen 2017), Konrad Hinsen modifie sa vision des termes présentée en
2014 pour passer au sens proposé par le jeu D2. Dans leur article, Stanisic
et al. (2015) se rapportent aux définitions D1. L'article de Cohen-boulakia
et al. (2017) sur le thème des sciences de la vie est dans la catégorie D1.
Drummond (2009) plébiscite le jeu de définitions D1. Le papier étudiant
la reproductibilité de Collberg et Proebsting (2016) applique les définitions
D1. Gundersen et Kjensmo (2018) utilisent le jeu D1 ; il en est de même
pour Bajpai et al. (2019) dans le domaine des réseaux. La National
Academies of Sciences Engineering, and Medicine (2019) utilise le jeu de
définitions D2 avec un fort impact (plus de 600 citations à ce jour). L'état
de l'art le plus récent sur le thème de la reproductibilité des workflows en
calcul scientifique (Ivie et Thain 2018) utilise également le jeu de définitions
D1. Stodden a utilisé en 2011 (Stodden 2011) le jeu D1, puis est passée au
jeu D2 en 2014 (Stodden et al. 2014). Plusieurs articles utilisent les trois
termes reproductibilité, répétabilité et réplicabilité, mais la plupart utilisent
la notion de « recherche reproductible » sans apporter explicitement de
standardiser autant que possible entre les disciplines. Nous observons une tendance à adopter les nouvelles définitions parmi les auteurs contribuant activement au domaine de la recherche reproductible, tel que Konrad Hinsen ou Victoria Stodden, dans cet objectif de standardisation.

Les nouvelles définitions de l'ACM correspondent avec les définitions de l'Académie Nationale des Sciences, de l'Ingénierie et de la Médecine, qui définissent « La reproductibilité est l'obtention de résultats cohérents en utilisant les mêmes données d'entrée; étapes de calcul, méthodes et code; et conditions d'analyse », et « La réplicabilité est l'obtention de résultats cohérents à travers des études visant à répondre à la même question scientifique, chacune ayant obtenu ses propres données » (National Academies of Sciences 2019). Les articles édités avec le soutien de l'ACM peuvent obtenir des « badges », suivant le niveau de disponibilité des artefacts et de reproductibilité de l'article (Badges ACM).

Le dernier terme à discuter est la répétabilité. Il a suscité moins de controverse que les deux autres. Cependant, dans les articles de recherche en informatique, nous trouvons parfois une confusion entre répétabilité et reproductibilité. Nous discuterons de son importance plus tard.

Cependant, d'un point de vue philosophique, la reproductibilité est le seul terme qui peut englober toutes les différentes notions. Karl Popper, le célèbre philosophe des sciences, a discuté de la logique derrière la découverte scientifique au début du 20ème siècle, d'abord en allemand (1934/35), puis en anglais en 1959. Nous disposons maintenant d'une réédition récente (Popper 2005). Popper a défini la reproductibilité comme un critère permettant de distinguer la science et la pseudo-science (Hill 2019). L'ajout d'autres termes tel que réplicabilité ou répétabilité est toujours utile, car cela permet de décrire avec une granularité plus fine ce dont nous parlons dans nos articles. Plus centré sur le terme de
nuances aux différentes notions. C'était le cas dans notre article de 2013 (Hill et al. 2013), nous utilisions sans distinction le terme de reproductibilité au sens large de la philosophie des Sciences. Avec plus d'expérience dans le domaine, nous avons utilisé le jeu de définitions D1, dans (Hill 2015) et (Hill et al. 2017), où la reproductibilité fait référence à l'obtention de la même conclusion scientifique en réalisant potentiellement une autre expérience et la répétabilité le fait d'avoir les mêmes résultats bits à bits pour pouvoir déboguer. Enfin dans (Hill 2022), nous utilisons le jeu de définitions D2 en conformité avec les avancées de l'ACM et de la « National Academies of Sciences, Engineering, and Medicine ».

Dans notre petit échantillon, qui comprend principalement des articles
publiés par des auteurs actifs du domaine et bien cités, nous avons identifié
huit articles qui utilisent les définitions fournies par l'ACM avant 2020 (D1)
et qui ont été publiés entre 2009 et 2019. Quatre articles utilisent les
nouvelles définitions de l'ACM (D2) dans un intervalle de temps similaire.
De notre point de vue en tant qu'informaticiens, il semble que la majorité
des travaux publiés que nous pouvons voir s'appuient sur les définitions
obsolètes de l'ACM (avant 2020, D1). Une étude très intéressante de Barba
(2018) a étudié quel champ scientifique utilisait plutôt une définition ou
l'autre. Avec cette étude, nous réalisons que l'informatique était l'un des
rares domaines à utiliser les définitions données au début de cette section
(D1).
reproductibilité, Goodman et al. (2016) ont proposé trois autres définitions
qui pourraient convenir et englober la définition standard :

- La reproductibilité des méthodes : se réfère à la capacité de reproduire fidèlement les procédures expérimentales et computationnelles, en utilisant les mêmes données et outils, afin d'obtenir des résultats cohérents. Cela s'aligne avec la définition révisée de la reproductibilité de l'ACM, ou peut-être de la répétabilité.

- La reproductibilité des résultats : concerne la génération de résultats cohérents dans une nouvelle étude grâce à l'utilisation des mêmes méthodes expérimentales. Cela correspondrait également à la nouvelle définition de la reproductibilité de l'ACM. Cependant, dans la définition de la reproductibilité, nous utilisons exactement les mêmes matériaux (artefacts) pour générer les mêmes résultats.

- La reproductibilité inférentielle : implique d'atteindre des conclusions qualitativement similaires soit par une réplication indépendante d'une étude, soit par la ré-analyse des résultats de l'étude originale. Cela correspondrait à la nouvelle définition de la réplicabilité de l'ACM.

Avec ces définitions, nous conservons le terme principal de reproductibilité, mais en ajoutant un contexte à son utilisation. Cependant, nous considérons que les définitions de l'ACM post 2020 sont désormais la norme à laquelle les auteurs devraient se conformer, dans un objectif de standardisation. On constate néanmoins que de nombreuses définitions ont encore émergé pour essayer de définir ce qu'est la reproductibilité.
<table><caption>Table 1 : Tour d'horizons des définitions au sein de la recherche reproductible</caption><thead><tr><th></th><th>Définitions ACM<br>avant 2020<br>(anciennes)</th><th>Définitions ACM<br>après 2020<br>(actuelles)</th></tr></thead><tbody><tr><th>Reproductibilité</th><td>Equipe différente,<br>expérience différente</td><td>Equipe différente,<br>même expérience</td></tr><tr><th>Replicabilité</th><td>Equipe différente,<br>même expérience</td><td>Equipe différente,<br>expérience différente</td></tr><tr><th>Répétabilité</th><td>Même équipe, même<br>expérience</td><td>Même équipe, même<br>expérience</td></tr><tr><th>Classification des<br>définitions utilisées<br>par des auteurs du<br>monde de la<br>recherche<br>reproductible dans<br>leurs articles</th><td>(Hinsen 2014),<br>(Stanisic et al. 2015),<br>(Cohen-Boulakia et<br>al. 2017),<br>(Drummond 2009),<br>(Collberg et<br>Proebsting, 2016),<br>(Gundersen and<br>Kjensmo, 2018),<br>(Bajpai, Brunstrom,<br>et al. 2019), (Ivie and<br>Thain, 2018),<br>(Stodden 2011), (Hill<br>et al. 2013), (Hill<br>2015), (Hill 2019),<br>(Hill et al. 2017)</td><td>(Rougier et al. 2017),<br>(Hinsen 2017),<br>(National Academies<br>of Sciences 2019),<br>(Stodden et al. 2014)<br>(Hill 2022)</td></tr></tbody></table>

Les informations précédentes sont résumées dans la Table 1. Néanmoins, pour continuer à définir précisément un concept, il est impératif de considérer des perspectives au-delà de son domaine immédiat (pour nous, l'informatique). Certaines définitions de la recherche reproductible sont spécifiques à chaque domaine, ce que nous voulons éviter dans le contexte de la reproductibilité, puisque nous voulons standardiser autant que possible entre les disciplines. Nous observons une tendance à adopter les nouvelles définitions parmi les auteurs contribuant
## 1.2. A propos de l'importance de la recherche reproductible

L'une des origines du mouvement de la recherche reproductible en science computationnelle a été l'initiative de Claerbout en 1992 (Claerbout et Karrenbach 1992). Buckheit et Donoho, en 1995, l'ont synthétisé avec la célèbre citation : « *Un article en informatique dans une publication scientifique n'est pas en soi la recherche, c'est simplement une publicité pour la recherche. La véritable recherche est l'environnement complet de développement logiciel et l'ensemble complet des instructions qui ont généré les figures* » . Marwick, en 2015, a souligné le défi posé par nos programmes informatiques : ils agissent comme des boîtes noires. Aujourd'hui, presque toute recherche en science implique l'utilisation d'un ordinateur. Dans un passé pas si lointain, il était nécessaire de faire soi-même tous les calculs, toutes les transformations, l'utilisation des données, etc., et décrire précisément la procédure dans un article de recherche que l'on allait publier. Cela permettait de reproduire les articles assez simplement. Aujourd'hui, des couches logicielles plus ou moins complexes cachent de nombreux éléments. Nous ne savons souvent pas exactement ce qui se passe, et il devient beaucoup plus compliqué de reproduire des résultats publiés par d'autres, si nous n'avons pas la même machine avec la même pile logicielle disponible. L'ordinateur devient un instrument de recherche à part entière, et bien plus encore... Par conséquent, il devrait subir le même contrôle de qualité (un travail méticuleux de métrologie) que les biologistes ou physiciens appliquent à leurs instruments.

Comme le dit Popper, la reproductibilité est obligatoire pour l'avancement de la science. Nous devrions être capables d'utiliser les artefacts (code, données, etc.) d'un papier publié pour rejouer l'expérience et obtenir les mêmes résultats. Nous avons besoin des artefacts du papier de recherche pour prévenir les erreurs ou, beaucoup moins fréquemment, les fraudes. De plus, la reproductibilité implique qu'une équipe de
activement au domaine de la recherche reproductible, tels que Konrad Hinsen ou Victoria Stodden, dans cet objectif de standardisation.

Les nouvelles définitions de l'ACM correspondent avec les définitions de l'Académie Nationale des Sciences, de l'Ingénierie et de la Médecine, qui définissent « La reproductibilité est l'obtention de résultats cohérents en utilisant les mêmes données d'entrée ; étapes de calcul, méthodes et code ; et conditions d'analyse », et « La réplicabilité est l'obtention de résultats cohérents à travers des études visant à répondre à la même question scientifique, chacune ayant obtenu ses propres données » (National Academies of Sciences 2019). Les articles édités avec le soutien de l'ACM peuvent obtenir des « badges », suivant le niveau de disponibilité des artefacts et de reproductibilité de l'article.

Le dernier terme à discuter est la répétabilité. Il a suscité moins de controverse que les deux autres. Cependant, dans les articles de recherche en informatique, nous trouvons parfois une confusion entre répétabilité et reproductibilité. Nous discuterons de son importance plus tard.

Cependant, d'un point de vue philosophique, la reproductibilité est le seul terme qui peut englober toutes les différentes notions. Karl Popper, le célèbre philosophe des sciences, a discuté de la logique derrière la découverte scientifique au début du XXe siècle, d'abord en allemand (1934/35), puis en anglais en 1959. Nous disposons maintenant d'une réédition récente (Popper 2005). Popper a défini la reproductibilité comme un critère permettant de distinguer la science et la pseudo-science (Hill 2019). L'ajout d'autres termes tels que réplicabilité ou répétabilité est toujours utile, car cela permet de décrire avec une granularité plus fine ce dont nous parlons dans nos articles. Plus centré sur le terme de reproductibilité, Goodman et al. (2016) ont proposé trois autres définitions qui pourraient convenir et englober la définition standard :

- La reproductibilité des méthodes : se réfère à la capacité de reproduire fidèlement les procédures expérimentales et computationnelles, en
recherche indépendante mène une expérience uniquement basée sur les informations fournies par l'équipe de recherche originale. La capacité à faciliter la reproduction d'un article que l'on publie augmentera la confiance dans les résultats publiés. Notamment, d'autres chercheurs peuvent maintenir un niveau d'objectivité plus élevé, car ils n'ont aucun intérêt à exagérer la performance d'une méthode qu'ils n'ont pas développée eux-mêmes. En outre, ces chercheurs peuvent ne pas partager les mêmes préconceptions et connaissances tacites de l'équipe initiale qui a effectué la recherche. De plus, les variations dans les configurations matérielles et logicielles parmi différents chercheurs aident également à contrôler les variables de bruit associées au matériel et aux logiciels auxiliaires, ainsi qu'aux connaissances implicites et préconceptions. Mais ce dernier point n'est vrai que si l'on considère que la reproductibilité est atteinte avec une précision imparfaite, et non avec des résultats identiques au bit près (dans le cadre de l'informatique), qui pourraient être l'objectif de certains auteurs et aussi une exigence pour le débogage.

Concernant la répétabilité, la définition peut encore varier parmi les domaines scientifiques. En effet, en informatique, nos machines sont conçues pour être déterministes (à l'exception des machines quantique, qui sont par « essence » stochastiques). En informatique, nous voulons obtenir des résultats identiques au bit près d'une exécution à l'autre lorsque nous sommes sur la même machine pour le même programme dans le même environnement logiciel avec les mêmes jeux de données. Ce point est considéré comme acquis par de nombreux scientifiques, et malheureusement ce n'est pas toujours le cas, en particulier lorsqu'il s'agit de calcul haute performance. Cependant, la répétabilité bit à bit reste essentielle pour le débogage et pour la confiance dans l'utilisation de nos ordinateurs déterministes. La répétabilité est une véritable préoccupation
utilisant les mêmes données et outils, afin d'obtenir des résultats
cohérents. Cela s'aligne avec la définition révisée de la
reproductibilité de l'ACM, ou peut-être de la répétabilité.

- La reproductibilité des résultats : concerne la génération de résultats cohérents dans une nouvelle étude grâce à l'utilisation des mêmes méthodes expérimentales. Cela correspondrait également à la nouvelle définition de la reproductibilité de l'ACM. Cependant, dans la définition de la reproductibilité, nous utilisons exactement les mêmes matériaux (artefacts) pour générer les mêmes résultats.

- La reproductibilité inférentielle : implique d'atteindre des conclusions qualitativement similaires soit par une réplication indépendante d'une étude, soit par la ré-analyse des résultats de l'étude originale. Cela correspondrait à la nouvelle définition de la réplicabilité de l'ACM.

Avec ces définitions, nous conservons le terme principal de
reproductibilité, mais en ajoutant un contexte à son utilisation. Cependant,
nous considérons que les définitions de l'ACM post 2020 sont désormais
la norme à laquelle les auteurs devraient se conformer, dans un objectif de
standardisation. On constate néanmoins que de nombreuses définitions
ont encore émergé pour essayer de définir ce qu'est la reproductibilité.

## 1.2. À propos de l'importance de la recherche reproductible

L'une des origines du mouvement de la recherche reproductible en
science computationnelle a été l'initiative de Claerbout en 1992 (Claerbout
et Karrenbach 1992). Buckheit et Donoho, en 1995, l'ont synthétisé avec
la célèbre citation : « *Un article en informatique dans une publication scientifique n'est pas en soi la recherche, c'est simplement une publicité pour la recherche. La véritable recherche est l'environnement complet de développement logiciel et l'ensemble complet des instructions qui ont généré les figures* ».
Marwick, en 2015, a souligné le défi posé
pour les chercheurs qui sont encore conscients du débogage car ils continuent à faire du développement informatique, mais cette quête peut être particulièrement difficile avec le calcul parallèle, à tel point qu'on la compare parfois à une quête du « Graal ». Assurer un débogage parallèle fiable nécessite une répétabilité avec des résultats identiques au bit près. Et en ce sens, nous ne sommes pas entièrement d'accord avec la définition de l'ACM qui ajoute que les résultats sont identiques avec une marge de précision. Cela est dû au fait que la définition de la répétabilité de l'ACM provient du vocabulaire international de métrologie. À notre avis, cette définition est parfaitement correcte pour l'informatique quantique, mais pas pour l'informatique déterministe classique où nous avons vraiment besoin de résultats identiques au bit près pour déboguer correctement. Dans le cas de l'informatique déterministe classique, la définition est valide en précisant que la marge de précision est nulle afin de n'autoriser aucune différence.

Enfin, la réplicabilité est également obligatoire pour la science. En effet, l'idée que plus une hypothèse scientifique est répliquée dans le monde entier (avec différentes équipes de recherche et différentes méthodes ou expériences), plus l'hypothèse devient forte, et plus elle sera acceptée par la majorité les scientifiques.

Nous pouvons voir les trois termes des définitions de l'ACM comme se situant à différents niveaux. La répétabilité se situe au niveau de l'auteur, qui doit déboguer ou refaire sa propre expérience. La reproductibilité se situe au niveau de l'article : d'autres chercheurs pourraient vouloir s'appuyer sur ce papier pour construire leur propre recherche, et poursuivre l'objectif d'améliorer les connaissances en évitant de « réinventer la roue ». Atteindre cet objectif implique que les articles soient publiés avec tous leurs artefacts, et cela améliorera la confiance dans les
par nos programmes informatiques : ils agissent comme des boîtes noires. Aujourd'hui, presque toute recherche en science implique l'utilisation d'un ordinateur. Dans un passé pas si lointain, il était nécessaire de faire soi-même tous les calculs, toutes les transformations, l'utilisation des données, etc., et décrire précisément la procédure dans un article de recherche que l'on allait publier. Cela permettait de reproduire les articles assez simplement. Aujourd'hui, des couches logicielles plus ou moins complexes cachent de nombreux éléments. Nous ne savons souvent pas exactement ce qui se passe, et il devient beaucoup plus compliqué de reproduire des résultats publiés par d'autres, si nous n'avons pas la même machine avec la même pile logicielle disponible. L'ordinateur devient un instrument de recherche à part entière, et bien plus encore... Par conséquent, il devrait subir le même contrôle de qualité (un travail méticuleux de métrologie) que les biologistes ou physiciens appliquent à leurs instruments.

Comme le dit Popper, la reproductibilité est obligatoire pour l'avancement de la science. Nous devrions être capables d'utiliser les artefacts (code, données, etc.) d'un papier publié pour rejouer l'expérience et obtenir les mêmes résultats. Nous avons besoin des artefacts du papier de recherche pour prévenir les erreurs ou, beaucoup moins fréquemment, les fraudes. De plus, la reproductibilité implique qu'une équipe de recherche indépendante mène une expérience uniquement basée sur les informations fournies par l'équipe de recherche originale. La capacité à faciliter la reproduction d'un article que l'on publie augmentera la confiance dans les résultats publiés. Notamment, d'autres chercheurs peuvent maintenir un niveau d'objectivité plus élevé, car ils n'ont aucun intérêt à exagérer la performance d'une méthode qu'ils n'ont pas développée eux-mêmes. En outre, ces chercheurs peuvent ne pas partager les mêmes préconceptions et connaissances tacites de l'équipe initiale qui a effectué la recherche. De plus, les variations dans les configurations matérielles et logicielles parmi différents chercheurs aident également à
résultats publiés. Enfin, la réplicabilité se situe au niveau de la Science : différentes équipes de recherche, réalisant différentes expériences, mais obtenant la même conclusion scientifique. Ceci est obligatoire pour valider une hypothèse scientifique.

Nous pouvons voir que toutes ces notions sont cruciales pour la communauté scientifique. Il y a une montée d'intérêt pour la recherche reproductible qui peut désormais être observée dans les conférences et les revues scientifiques. La création des journaux dédiés à la reproduction des résultats des articles publiés est également un grand pas pour favoriser la recherche reproductible. Dans son article (Drummond 2018), Drummond, même s'il ne l'approuve pas, constate le fait que de nombreuses conférences (AAAS, AMP, ENAR, NSF, SIAM-CSE, SIAM-Geo) et journaux, dans le domaine de l'apprentissage artificiel, se préoccupent de plus en plus de la recherche reproductible. Stodden et ses collègues évaluent l'efficacité d'une politique de journal exigeant des auteurs qu'ils rendent disponibles les données et le code après publication (Stodden et al. 2018). Sur un échantillon aléatoire de 204 articles scientifiques publiés dans la revue à fort impact (Science), après la mise en œuvre de cette politique, les artefacts n'ont été obtenus que pour 44 % de l'échantillon. Ensuite, les résultats ont été reproduits avec succès pour 26 %. Cette politique des journaux apporte une amélioration par rapport à l'absence de celle-ci, mais elle reste cependant insuffisante pour garantir la reproductibilité. Stodden et ses collègues estiment que les incitations des conférences et des revues améliorent la reproductibilité, et qu'il faut continuer de travailler dans cette direction.
contrôler les variables de bruit associées au matériel et aux logiciels auxiliaires, ainsi qu'aux connaissances implicites et préconceptions. Mais ce dernier point n'est vrai que si l'on considère que la reproductibilité est atteinte avec une précision parfaite, et non avec des résultats identiques au bit près (dans le cadre de l'informatique), qui pourraient être l'objectif de certains auteurs et aussi une exigence pour le débogage.

Concernant la répétabilité, la définition peut encore varier parmi les domaines scientifiques. En effet, en informatique, nos machines sont conçues pour être déterministes (à l'exception des machines quantiques, qui sont par « essence » stochastiques). En informatique, nous voulons obtenir des résultats identiques au bit près d'une exécution à l'autre lorsque nous sommes sur la même machine pour le même programme dans le même environnement logiciel avec les mêmes jeux de données. Ce point est considéré comme acquis par de nombreux scientifiques, mais ce n'est malheureusement pas toujours le cas, en particulier lorsqu'il s'agit de calcul haute performance. Cependant, la répétabilité bit à bit reste essentielle pour le débogage et pour la confiance dans l'utilisation de nos ordinateurs déterministes. La répétabilité est une véritable préoccupation pour les chercheurs qui sont encore conscients du débogage car ils continuent à faire du développement informatique, mais cette quête peut être particulièrement difficile avec le calcul parallèle, à tel point qu'on la compare parfois à une quête du « Graal ». Assurer un débogage parallèle fiable nécessite une répétabilité avec des résultats identiques au bit près. Et en ce sens, nous ne sommes pas entièrement d'accord avec la définition de l'ACM qui ajoute que les résultats sont identiques avec une certaine marge de précision. Cela est dû au fait que la définition de la répétabilité de l'ACM provient du vocabulaire international de métrologie. À notre avis, cette définition est parfaitement correcte pour l'informatique quantique, mais pas pour l'informatique déterministe classique où nous avons vraiment besoin de résultats identiques au bit près pour déboguer correctement.
# Chapitre 2

## Crise de la reproductibilité : quelques exemples

La crise de la reproductibilité en science est désormais un phénomène mondial et largement transdisciplinaire qui contribue à la méfiance de la société envers le monde de la recherche. En 2016, Baker (2016) a publié une enquête auprès de 1576 scientifiques pour connaître leur opinion sur le fait que nous sommes actuellement confrontés à une crise de reproductibilité. Au total, 90 % des répondants pensent qu'il existe une crise de reproductibilité significative ou légère. Seuls 3 % sont convaincus qu'il n'y a pas de crise du tout. Cette étude souligne le consensus au sein de la communauté scientifique qu'une crise de reproductibilité est bien présente, couvrant diverses disciplines.

La littérature existante offre une myriade d'exemples, tant théoriques qu'empiriques, qui mettent en lumière la crise de la reproductibilité. En médecine, nous avons le célèbre titre provocateur de Ioannidis, un éminent épidémiologiste. L'un de ses articles majeurs dans ce domaine était intitulé : « *Pourquoi la plupart des résultats de recherche publiés sont faux* » (Ioannidis 2005). Dans cet article très cité, il discute des failles statistiques qui pourraient affecter les résultats publiés. Errington et al. (2021) présentent les résultats de reproductibilité d'études sur le cancer, montrant un taux de succès de seulement 46 % sur 112 tentatives. Begley et Ellis (2012) ont eux aussi lancé une alerte sur la reproductibilité dans la recherche sur le cancer. Ce taux de 46% peut sembler relativement optimiste si l'on considère (Ioannidis 2015), qui affirme que 85 % des financements de la recherche sont gaspillés. Eklund et al. (2016) ont trouvé
Dans le cas de l'informatique déterministe classique, la définition est valide en précisant que la marge de précision est nulle afin de n'autoriser aucune différence.

Enfin, la réplicabilité est également obligatoire pour la science. En effet, l'idée que plus une hypothèse scientifique est répliquée dans le monde entier (avec différentes équipes de recherche et différentes méthodes ou expériences), plus l'hypothèse devient forte, et plus elle sera acceptée par la majorité des scientifiques.

Nous pouvons voir les trois termes des définitions de l'ACM comme se situant à différents niveaux. La répétabilité se situe au niveau de l'auteur, qui doit déboguer ou refaire sa propre expérience. La reproductibilité se situe au niveau de l'article : d'autres chercheurs pourraient vouloir s'appuyer sur ce papier pour construire leur propre recherche, et poursuivre l'objectif d'améliorer les connaissances en évitant de « réinventer la roue ». Atteindre cet objectif implique que les articles soient publiés avec tous leurs artefacts, et cela améliorera la confiance dans les résultats publiés. Enfin, la réplicabilité se situe au niveau de la Science : différentes équipes de recherche, réalisant différentes expériences, mais obtenant la même conclusion scientifique. Ceci est obligatoire pour valider une hypothèse scientifique.

Nous pouvons voir que toutes ces notions sont crucales pour la communauté scientifique. Il y a une montée d'intérêt pour la recherche reproductible qui peut désormais être observée dans les conférences et les revues scientifiques. La création des journaux dédiés à la reproduction des résultats des articles publiés est également un grand pas pour favoriser la recherche reproductible. Dans son article (Drummond 2018), Drummond, même s'il ne l'approuve pas, constate le fait que de nombreuses conférences (AAAS, AMP, ENAR, NSF, SIAM-CSE, SIAM-Geo) et journaux, dans le domaine de l'apprentissage artificiel, se préoccupent de plus en plus de la recherche reproductible. Stodden et ses collègues
un problème significatif avec les études par IRM, indiquant que de
nombreux articles pourraient avoir rapporté de faux résultats. Open
Science Collaboration (2015) a révélé un problème similaire dans les
articles de psychologie, avec des taux de reproductibilité allant de 30 % à
50 %. Dans le domaine des neurosciences, Topalidou et al. (2015) n'ont
pas pu reproduire un modèle et ont dû passer trois mois à le ré-
implémenter.

Nous avons vu que le domaine médical est fortement impacté par cette
crise de la reproductibilité, y compris des domaines tels que le domaine
pharmaceutique, les dispositifs médicaux (IRM), la psychologie, la
recherche sur le cancer et les neurosciences. Cependant, comme
mentionné précédemment, aucun domaine n'est exempt de ce problème.
Nous aurions pu considérer l'informatique comme une science exacte,
grâce à ses machines déterministes, et ne faisant pas face à ce problème.
Néanmoins, l'informatique n'est pas à l'abri de la crise de reproductibilité;
en réalité, elle en est en partie l'instigatrice. Une étude approfondie de
Collberg et Proebsting (2016) sur la reproductibilité des articles en
informatique a donné des résultats plutôt mauvais, avec seulement environ
30 % des articles de recherche reproductibles sur 601 examinés. Manninen
et al. (2017) ont tenté de reproduire quatre modèles de « L'excitabilité calcique
dans les astrocytes », et 3 sur 4 modèles manquaient d'informations
essentielles, avec 2 sur 4 modèles ayant des équations incorrectes. Même
après avoir corrigé les différents modèles, ils n'ont pas produit des résultats
cohérents entre eux. Mesnard et Barba (2017) ont travaillé sur la
mécanique des fluides, et il leur a fallu trois ans pour reproduire les
résultats obtenus à partir de différentes versions leurs propres codes et
outils. L'intelligence artificielle n'est également pas exempte de ce
problème, comme l'ont démontré Gundersen et Kjensmo (2018). Dans le
évaluent l'efficacité d'une politique de journal exigeant des auteurs qu'ils rendent disponibles les données et le code après publication (Stodden et al. 2018). Sur un échantillon aléatoire de 204 articles scientifiques publiés dans la revue à fort impact (Science), après la mise en œuvre de cette politique, les artefacts n'ont été obtenus que pour 44 % de l'échantillon. Ensuite, les résultats ont été reproduits avec succès pour 26 %. Cette politique des journaux apporte une amélioration par rapport à l'absence de celle-ci, mais elle reste cependant insuffisante pour garantir la reproductibilité. Stodden et ses collègues estiment que les incitations des conférences et des revues améliorent la reproductibilité, et qu'il faut continuer de travailler dans cette direction.
domaine des réseaux, Kurkowski *et al.* (2005) ont trouvé que moins de 15 % des articles sur les simulations de réseaux MANET étaient reproductibles. En traitement d'image, Kovacevic (2007) a étudié 15 articles publiés dans son domaine, et a constaté qu'aucun algorithme présenté n'était soutenu par un code, et que seulement 33 % des données étaient disponibles. Vandewalle *et al.* (2009) ont examiné 134 articles également dans le domaine du traitement d'image, constatant que 9 % des articles avaient un code disponible, et 33 % pour les données.

Cela souligne que l'informatique, à travers ses différents sous-domaines, n'est pas à l'abri des défis de la reproductibilité. Ces points soulignent l'importance d'établir une recherche reproductible. Mettre l'accent sur la nécessité d'une recherche reproductible peut prévenir les fraudes et les scandales potentiels. Par exemple, Reinhart & Rogoff, spécialistes mondiaux de l'économie, ont affirmé en 2010 qu'augmenter la dette d'un pays au-delà de 90 % du Produit Intérieur Brut (PIB) d'un pays arrêterait sa croissance économique. Cette affirmation a conduit de nombreux pays occidentaux, comme les États-Unis, à adopter des politiques d'austérité. Cependant, Herndon *et al.* (2014) ont ensuite prouvé que l'étude était erronée. Reinhart et Rogoff avaient exclu des données qui contredisaient leurs conclusions et commis des erreurs de calcul. Puisqu'ils ont partagé le code et les données (un fichier Excel), il a été possible de vérifier leur travail. Cela plaide fortement en faveur d'une recherche reproductible et d'une science ouverte (partage de toutes les données liées à un article). La seule façon de démontrer qu'un article est faux est d'avoir accès à ses artefacts. Un autre exemple décrit dans (Miller 2006) concerne Geoffrey Chang, qui a eu un impact significatif sur le domaine de la structure protéique des bactéries résistantes aux antibiotiques. Cependant, plusieurs années plus tard, ses résultats se sont avérés faux en raison de la
# Chapitre 2

## Crise de la reproductibilité : quelques exemples

La crise de la reproductibilité en science est désormais un phénomène mondial et largement transdisciplinaire qui contribue à la méfiance de la société envers le monde de la recherche. En 2016, Baker (2016) a publié une enquête auprès de 1576 scientifiques pour connaître leur opinion sur le fait que nous sommes actuellement confrontés à une crise de reproductibilité. Au total, 90 % des répondants pensent qu'il existe une crise de reproductibilité significative ou légère. Seuls 3 % sont convaincus qu'il n'y a pas de crise du tout. Cette étude souligne le consensus au sein de la communauté scientifique qu'une crise de reproductibilité est bien présente, couvrant diverses disciplines.

La littérature existante offre une myriade d'exemples, tant théoriques qu'empiriques, qui mettent en lumière la crise de la reproductibilité. En médecine, nous avons le célèbre titre provocateur de Ioannidis, un éminent épidémiologiste. L'un de ses articles majeurs dans ce domaine était intitulé : « *Pourquoi la plupart des résultats de recherche publiés sont faux* » (Ioannidis 2005). Dans cet article très cité, il discute des failles statistiques qui pourraient affecter les résultats publiés. Errington *et al*. (2021) présentent les résultats de reproductibilité d'études sur le cancer, montrant un taux de succès de seulement 46 % sur 112 tentatives. Begley et Ellis (2012) ont eux aussi lancé une alerte sur la reproductibilité dans la recherche sur le cancer. Ce taux de 46% peut sembler relativement optimiste si l'on considère (Ioannidis 2015), qui affirme que 85 % des financements de la recherche sont gaspillés. Eklund *et al*. (2016) ont trouvé un problème significatif avec les études par IRM, indiquant que de nombreux articles pourraient avoir
découverte d'une erreur de programmation dans les outils internes de
Chang.

Récemment, la crise du Covid19 a fortement augmenté la
sensibilisation des citoyens non scientifiques à l'importance de la
recherche reproductible. Nous avons été témoins de scandales dans le
contexte du Covid-19, tels que la rétractation de deux articles du Lancet et
du New England Journal of Medicine (Piller, Servick 2020). Les deux
études ont influencé la politique internationale sur l'utilisation, ou non, de
certains médicaments dans la cadre de la pandémie et ont dû être
rapidement rétractées. Un autre cas était le modèle Covid de Neil
Ferguson (Ferguson et al. 2020), pour lequel Pouzat (2022) a écrit un article
humoristique, soulignant le scandale causé par la non-publication du code
initial de Ferguson. Ce modèle avait déjà influencé les politiques
internationales sur les mesures de confinement, en particulier en
Angleterre. Sous la pression internationale, principalement des États-Unis,
Neil Ferguson a publié une version révisée de son code et il a ensuite été
rapporté comme gravement défectueux (Zolfagharifard et Boland 2020)
menant à une pétition sur GitHub (Holmes 2020) pour retirer le code afin
d'éviter son utilisation comme base pour d'autres modèles
épidémiologiques. La pression financière, en particulier en médecine à
l'échelle mondiale (Abbasi 2020), peut fortement diminuer la qualité
scientifique, car sans reproductibilité, les entreprises se rapprochent
étroitement de la pseudoscience, selon les critères énoncés par Karl
Popper. Le financement et les conflits d'intérêts gangrènent ces situations,
dans un cadre où nous avions besoin d'une collaboration publique
internationale rapide. Iqbal et al. (2016) ont déclaré que « *Les articles publiés
dans des revues dans la catégorie de la médecine clinique par rapport à d'autres domaines
étaient presque deux fois plus susceptibles de ne pas inclure d'informations sur le*
rapporté de faux résultats. Open Science Collaboration (2015) a révélé un problème similaire dans les articles de psychologie, avec des taux de reproductibilité allant de 30 % à 50 %. Dans le domaine des neurosciences, Topalidou et al. (2015) n'ont pas pu reproduire un modèle et ont dû passer trois mois à le ré-implémenter.

Nous avons vu que le domaine médical est fortement impacté par cette crise de la reproductibilité, y compris des domaines tels que le domaine pharmaceutique, les dispositifs médicaux (IRM), la psychologie, la recherche sur le cancer et les neurosciences. Cependant, comme mentionné précédemment, aucun domaine n'est exempt de ce problème. Nous aurions pu considérer l'informatique comme une science exacte, grâce à ses machines déterministes, et ne faisant pas face à ce problème. Néanmoins, l'informatique n'est pas à l'abri de la crise de reproductibilité ; en réalité, elle en est en partie l'instigatrice. Une étude approfondie de Collberg et Proebsting (2016) sur la reproductibilité des articles en informatique a donné des résultats plutôt mauvais, avec seulement environ 30 % des articles de recherche reproductibles sur 601 examinés. Manninen et al. (2017) ont tenté de reproduire quatre modèles de « *L'excitabilité calcique dans les astrocytes* », et 3 sur 4 modèles manquaient d'informations essentielles, avec 2 sur 4 modèles ayant des équations incorrectes. Même après avoir corrigé les différents modèles, ils n'ont pas produit des résultats cohérents entre eux. Mesnard et Barba (2017) ont travaillé sur la mécanique des fluides, et il leur a fallu trois ans pour reproduire les résultats obtenus à partir de différentes versions de leurs propres codes et outils. L'intelligence artificielle n'est également pas exempte de ce problème, comme l'ont démontré Gundersen et Kjensmo (2018). Dans le domaine des réseaux, Kurkowski et al. (2005) ont trouvé que moins de 15 % des articles sur les simulations de réseaux MANET étaient reproductibles. En traitement d'image, Kovacevic (2007) a étudié 15 articles publiés dans son domaine, et a constaté qu'aucun algorithme présenté n'était soutenu par un
financement et d'avoir un financement privé ». De plus, il est reconnu que les articles avec un financement industriel ou des auteurs industriels sont moins susceptibles de partager des codes et des données (Collberg et al. 2015), ce qui conduit au fait que nous ne pouvons pas accorder toute notre confiance aux articles industriels, si nous n'avons pas accès aux artefacts des publications proposées. Une initiative Française du Ministère des Solidarités et de la Santé est à remarquer, la mise en ligne des informations concernant les conventions, les rémunérations et les avantages liant des entreprises et des acteurs du secteur de la santé.
code, et que seulement 33 % des données étaient disponibles. Vandewalle et al. (2009) ont examiné 134 articles également dans le domaine du traitement d'image, constatant que 9 % des articles avaient un code disponible, et 33 % pour les données.

Cela souligne que l'informatique, à travers ses différents sous-domaines, n'est pas à l'abri des défis de la reproductibilité. Ces points soulignent l'importance d'établir une recherche reproductible. Mettre l'accent sur la nécessité d'une recherche reproductible peut prévenir les fraudes et les scandales potentiels. Par exemple, Reinhart & Rogoff, spécialistes mondiaux de l'économie, ont affirmé en 2010 qu'augmenter la dette d'un pays au-delà de 90 % du Produit Intérieur Brut (PIB) d'un pays arrêterait sa croissance économique. Cette affirmation a conduit de nombreux pays occidentaux, comme les États-Unis, à adopter des politiques d'austérité. Cependant, Herndon et al. (2014) ont ensuite prouvé que l'étude était erronée. Reinhart et Rogoff avaient exclu des données qui contredisaient leurs conclusions et commis des erreurs de calcul. Puisqu'ils ont partagé le code et les données (un fichier Excel), il a été possible de vérifier leur travail. Cela plaide fortement en faveur d'une recherche reproductible et d'une science ouverte (partage de toutes les données liées à un article). La seule façon de démontrer qu'un article est faux est d'avoir accès à ses artefacts. Un autre exemple décrit dans (Miller 2006) concerne Geoffrey Chang, qui a eu un impact significatif sur le domaine de la structure protéique des bactéries résistantes aux antibiotiques. Cependant, plusieurs années plus tard, ses résultats se sont avérés faux en raison de la découverte d'une erreur de programmation dans les outils internes de Chang.

Récemment, la crise du Covid19 a fortement augmenté la sensibilisation des citoyens non scientifiques à l'importance de la recherche reproductible. Nous avons été témoins de scandales dans le contexte du Covid-19, tels que la rétractation de deux articles du Lancet et du New England Journal of Medicine (Piller, Servick 2020). Les deux études ont influencé la
# Chapitre 3

## Des oppositions au mouvement de la recherche reproductible

Cependant, tous les auteurs ne sont pas en accord avec le mouvement de la recherche reproductible. Dans son article de 2018 (Drummond 2018), Drummond affirme que le partage du code source utilisé pour produire un article n'est pas nécessaire. Il pense que les chercheurs sont forcés de le faire pour éviter d'être mal vus, mais que cela n'a aucun intérêt pour la Science. Pour lui, le mouvement de la recherche reproductible n'est pas basé sur des faits mais seulement sur des sentiments. Il ajoute que l'obligation de fournir le code source conduira à l'acceptation, par les journaux ou les conférences, d'articles sur la base de critères techniquement faibles et que, pour lui, la fraude a toujours existé et n'a jamais posé de problème significatif. Cependant, Drummond soutient toujours le concept de science ouverte. Nous ne sommes pas d'accord avec les déclarations de Drummond : partager le code et les données est maintenant devenu simple avec la multitude d'outils à notre disposition. De plus, pourquoi devrions-nous automatiquement faire confiance à un article publié ? Nous devrions pouvoir vérifier que ce qui a été publié n'est pas entaché d'erreurs. Un cas dont nous avons précédemment discuté a montré comment une erreur sur Excel (au minimum) dans un article de recherche invité publié par des scientifiques de renom, a impacté les politiques économiques de nombreux pays (Herndon et al. 2014). S'il est heureusement très rare d'observer des fraudes, les humains peuvent toujours commettre des erreurs. Il existe par ailleurs un potentiel pour que les auteurs sélectionnent volontairement les données qui les arrangent, ou
politique internationale sur l'utilisation, ou non, de certains médicaments
dans le cadre de la pandémie et ont dû être rapidement rétractées. Un autre
cas était le modèle Covid de Neil Ferguson (Ferguson et al. 2020), pour
lequel Pouzat (2022) a écrit un article humoristique, soulignant le scandale
causé par la non-publication du code initial de Ferguson. Ce modèle avait
déjà influencé les politiques internationales sur les mesures de
confinement, en particulier au Royaume-Uni. Sous la pression
internationale, principalement des États-Unis, Neil Ferguson a publié une
version révisée de son code et il a ensuite été rapporté comme gravement
défectueux (Zolfagharifard et Boland 2020) menant à une pétition sur
GitHub (Holmes 2020) pour retirer le code afin d'éviter son utilisation
comme base pour d'autres modèles épidémiologiques. La pression
financière, en particulier en médecine à l'échelle mondiale (Abbasi 2020),
peut fortement diminuer la qualité scientifique, car sans reproductibilité,
les entreprises se rapprochent étroitement de la pseudoscience, selon les
critères énoncés par Karl Popper. Le financement et les conflits d'intérêts
gangrènent ces situations, dans un cadre où nous avions besoin d'une
collaboration publique internationale rapide. Iqbal et al. (2016) ont déclaré
que « *Les articles publiés dans des revues dans la catégorie de la médecine clinique par rapport à d'autres domaines étaient presque deux fois plus susceptibles de ne pas inclure d'informations sur le financement et d'avoir un financement privé*». De plus, il est
reconnu que les articles avec un financement industriel ou des auteurs
industriels sont moins susceptibles de partager des codes et des données
(Collberg et al. 2015), ce qui conduit au fait que nous ne pouvons pas
accorder toute notre confiance aux articles industriels, si nous n'avons pas
accès aux artefacts des publications proposées. Une initiative française du
ministère des Solidarités et de la Santé est à remarquer, la mise en ligne des
informations concernant les conventions, les rémunérations et les
avantages liant des entreprises et des acteurs du secteur de la santé.
commettent des erreurs involontaires. En effet, un nombre accru de
relecture et de reproduction ne peut qu'améliorer la détection de telles
erreurs. Un code sans bug est un code qui n'a pas été suffisamment testé.
Enfin, concernant l'affirmation selon laquelle les fraudes n'ont pas posé
de problèmes significatifs, nous pensons que cela est sujet à débat. De
plus, en ce qui concerne la recherche financée par des fonds publics,
vraisemblablement financée par les contribuables, il semble y avoir un
impératif éthique pour assurer une accessibilité complète pour les citoyens
aux résultats. Dans un deuxième article, Drummond (2019) critique
fortement la priorisation des reproductions d'articles par rapport à la
nouveauté. Cela va à l'encontre du sentiment prédominant, et par
conséquent, il s'oppose aux politiques actuelles des journaux et des
conférences qui tendent vers la volonté de publier des articles plus
reproductibles. Il y a aussi Fanelli (2018) qui affirme que la crise de la
reproductibilité est largement exagérée, voire fausse, et que pour lui, ce
récit est nuisible car il démotive les jeunes chercheurs. Pourtant, être
rigoureux fait partie de notre travail, et nous ne voyons pas pourquoi cela
dissuaderait les jeunes chercheurs.

Un grand nombre de chercheurs sont fortement en désaccord avec les
voix s'opposant au mouvement de la recherche reproductible, bien
qu'utiles pour remettre en question la pertinence de telle ou telle approche,
que nous avons citées ci-dessus (Fanelli et Drummond en 2018 et 2019).
Stodden et al. (2013), Bajpai et al. (2017), Pouzat (2022) dans son dialogue
humoristique, Rougier, Hinsen et Barba, pour ne citer qu'eux, via la
création de leur journal dédié à la reproduction d'articles (Rougier et al.
2017), National Academies of Sciences (2019), Ten Hagen (2016), et
d'autres, défendent l'idée que les journaux devraient encourager la
recherche reproductible. Barba (2018) est beaucoup moins indulgente
# Chapitre 3

## Des oppositions au mouvement de la recherche reproductible

Cependant, tous les auteurs ne sont pas en accord avec le mouvement de la recherche reproductible. Dans son article de 2018 (Drummond 2018), Drummond affirme que le partage du code source utilisé pour produire un article n'est pas nécessaire. Il pense que les chercheurs sont forcés de le faire pour éviter d'être mal vus, mais que cela n'a aucun intérêt pour la Science. Pour lui, le mouvement de la recherche reproductible n'est pas basé sur des faits mais seulement sur des sentiments. Il ajoute que l'obligation de fournir le code source conduira à l'acceptation, par les journaux ou les conférences, d'articles sur la base de critères techniquement faibles et que, pour lui, la fraude a toujours existé et n'a jamais posé de problème significatif. Cependant, Drummond soutient toujours le concept de science ouverte. Nous ne sommes pas d'accord avec les déclarations de Drummond : partager le code et les données est maintenant devenu simple avec la multitude d'outils à notre disposition. De plus, pourquoi devrions-nous automatiquement faire confiance à un article publié ? Nous devrions pouvoir vérifier que ce qui a été publié n'est pas entaché d'erreurs. Un cas dont nous avons précédemment discuté a montré comment une erreur sur Excel (au minimum) dans un article de recherche invité publié par des scientifiques de renom, a impacté les politiques économiques de nombreux pays (Herndon et al. 2014). S'il est heureusement très rare d'observer des fraudes, les humains peuvent toujours commettre des erreurs. Il existe par ailleurs un potentiel pour que les auteurs sélectionnent volontairement les données qui les arragent, ou commettent des erreurs involontaires. En effet, un nombre accru de relecture et de reproduction ne peut
envers Drummond, déclarant que l'écart entre les définitions de la reproductibilité et de la réplicabilité du domaine de l'informatique par rapport aux autres domaines scientifique était dû à Drummond, après son article de 2009 : « *Ils ont [les chercheurs en informatique], à leur tour, basé leurs définitions sur le travail emphatique mais essentiellement erroné de Drummond (2009).* ». Nous croyons que le scepticisme est une marque de fabrique d'un scientifique compétent. Promouvoir une culture du doute et de scepticisme est crucial, mais il est nécessaire de faire preuve de prudence, car l'utilisation abusive du doute « scientifique » a également été employée pour entraver la reconnaissance de découvertes révolutionnaires, comme ce fut le cas avec le lien entre les cigarettes et le cancer du poumon.
qu'améliorer la détection de telles erreurs. Un code sans bug est un code
qui n'a pas été suffisamment testé. Enfin, concernant l'affirmation selon
laquelle les fraudes n'ont pas posé de problèmes significatifs, nous pensons
que cela est sujet à débat. De plus, en ce qui concerne la recherche financée
par des fonds publics, vraisemblablement financée par les contribuables, il
semble y avoir un impératif éthique pour assurer une accessibilité complète
pour les citoyens aux résultats. Dans un deuxième article, Drummond
(2019) critique fortement la priorisation des reproductions d'articles par
rapport à la nouveauté. Cela va à l'encontre du sentiment prédominant, et
par conséquent, il s'oppose aux politiques actuelles des journaux et des
conférences qui tendent vers la volonté de publier des articles plus
reproductibles. Il y a aussi Fanelli (2018) qui affirme que la crise de la
reproductibilité est largement exagérée, voire fausse, et que pour lui, ce
récit est nuisible car il démotive les jeunes chercheurs. Pourtant, être
rigoureux fait partie de notre travail, et nous ne voyons pas pourquoi cela
dissuaderait les jeunes chercheurs.

Un grand nombre de chercheurs sont fortement en désaccord avec les
voix s'opposant au mouvement de la recherche reproductible, bien
qu'utiles pour remettre en question la pertinence de telle ou telle approche,
que nous avons citées ci-dessus (Fanelli et Drummond en 2018 et 2019).
Stodden et al. (2013), Bajpai et al. (2017), Pouzat (2022) dans son dialogue
humoristique, Rougier, Hinsen et Barba, pour ne citer qu'eux, via la
création de leur journal dédié à la reproduction d'articles (Rougier et al.
2017), National Academies of Sciences (2019), Ten Hagen (2016), et
d'autres, défendent l'idée que les journaux devraient encourager la
recherche reproductible. Barba (2018) est beaucoup moins indulgente
envers Drummond, déclarant que l'écart entre les définitions de la
reproductibilité et de la réplicabilité du domaine de l'informatique par
rapport aux autres domaines scientifiques était dû à Drummond, après son
article de 2009 : « *Ils ont [les chercheurs en informatique]*, à leur tour, basé leurs
# Chapitre 4

## Pourquoi pouvons-nous perdre la reproductibilité ?

Dans notre exploration des défis liés à la reproductibilité dans la recherche informatique, nous constatons que les raisons de pertes de reproductibilité sont multifactorielles, telles qu'illustrées dans la Figure 1. La perte de reproductibilité peut provenir de divers facteurs qui sont catégorisés sous les rubriques de l'informatique scientifique et du calcul à hautes performances, chacun influencé par le contexte scientifique et le chercheur en lui-même. Dans l'informatique scientifique, les problèmes de reproductibilité surviennent principalement, dans un contexte scientifique « indépendant » du chercheur, en raison de différences dans les environnements logiciels, les workflows, une culture scientifique encourageant ou non certaines bonnes pratiques et le degré d'ouverture de la science. Ces facteurs sont complétés par des problèmes pouvant venir du chercheur en lui-même tel que son niveau technique en génie logiciel, la qualité de la documentation et des statistiques. De l'autre côté, le calcul à hautes performances fait face à son propre ensemble de défis techniques, indépendamment de l'engagement des chercheurs, nous pensons aux erreurs silencieuses (particules cosmiques etc.), au bruit actuel sur les ordinateurs quantiques, mais également aux compétences techniques que doivent acquérir les chercheurs pour maîtriser l'utilisation parallèle de générateurs de nombres pseudo-aléatoires (Hill et al. 2013) ou encore les techniques d'optimisation et les subtilités du calcul parallèle liées à l'évolution des architectures matérielles. Ces éléments soulignent collectivement la nature complexe et stratifiée de la perte de
définitions sur le travail emphatique mais essentiellement erroné de Drummond (2009). ». Nous croyons que le scepticisme est une marque de fabrique d'un scientifique compétent. Promouvoir une culture du doute et de scepticisme est crucial, mais il est nécessaire de faire preuve de prudence, car l'utilisation abusive du doute « scientifique » a également été employée pour entraver la reconnaissance de découvertes révolutionnaires, comme ce fut le cas avec le lien entre les cigarettes et le cancer du poumon.
reproductibilité, qui peut à la fois dépendre du niveau technique du chercheur, de sa volonté à mettre en place certaines bonnes pratiques favorisant la recherche reproductible, mais également un contexte scientifique facilitant ou non la mise en place d'une recherche reproductible, certains facteurs étant extérieurs au chercheur.

<figure><img src="image_2.png" /><figcaption>**Figure 1.** *Les différentes raisons de pertes de la reproductibilité pour les sciences ayant recours à l'informatique*</figcaption></figure>

## 4.1. La science ouverte

Une des raisons principales sous-jacente à l'incapacité de reproduire les articles scientifiques est la réticence ou l'échec des auteurs à partager leurs artefacts (codes, scripts, données, etc.). Sans partage de codes et de données, la reproductibilité d'un travail scientifique utilisant un ordinateur pour produire une partie de ses résultats est impossible (soit une grande partie de la recherche, que ce soit en informatique, mais également en biologie, et physique, et autres). L'essor de l'informatique parmi tous les domaines scientifiques a contribué à la crise de la reproductibilité, comme
# Chapitre 4

## Pourquoi pouvons-nous perdre la reproductibilité ?

Dans notre exploration des défis liés à la reproductibilité dans la recherche informatique, nous constatons que les raisons de la perte de reproductibilité sont multifactorielles, telles qu’illustrées dans la figure 1. La perte de reproductibilité peut provenir de divers facteurs qui sont catégorisés sous les rubriques de l’informatique scientifique et du calcul à haute performance, chacun influencé par le contexte scientifique et le chercheur en lui-même. Dans l’informatique scientifique, les problèmes de reproductibilité surviennent principalement, dans un contexte scientifique « indépendant » du chercheur, en raison de différences dans les environnements logiciels, les workflows, une culture scientifique encourageant ou non certaines bonnes pratiques et le degré d’ouverture de la science. Ces facteurs sont complétés par des problèmes pouvant venir du chercheur en lui-même tels que son niveau technique en génie logiciel, la qualité de la documentation et des statistiques. De l’autre côté, le calcul à haute performance fait face à son propre ensemble de défis techniques, indépendamment de l’engagement des chercheurs, nous pensons aux erreurs silencieuses (particules cosmiques etc.), au bruit actuel sur les ordinateurs quantiques, mais également aux compétences techniques que doivent acquérir les chercheurs pour maîtriser l’utilisation parallèle de générateurs de nombres pseudo-aléatoires (Hill et al. 2013) ou encore les techniques d’optimisation et les subtilités du calcul parallèle liées à l’évolution des architectures matérielles. Ces éléments soulignent collectivement la nature complexe et stratifiée de la perte de reproductibilité, qui peut à la fois dépendre du niveau technique du
l'a bien décrit Ben Marwick (Marwick 2015). La plupart des auteurs qui plaident en faveur de la recherche reproductible soulignent l'importance du partage des codes et des données. En effet, de nombreuses études citées précédemment ont indiqué que les problèmes de reproductibilité proviennent principalement de l'absence de partage de ces éléments.

L'utilisation de logiciels propriétaires peut également entraîner des problèmes de reproductibilité. Dans (Nüst et al. 2020), les auteurs rappellent que nous avons besoin de « l'open source » pour pouvoir avoir une science reproductible. L'Académie Nationale des Sciences, de l'Ingénierie et de la Médecine (National Academies of Sciences 2019) déclare que les agences de financement devraient financer la science ouverte. Un autre aspect a son importance : la propriété intellectuelle du code publié. Sans licence explicite, les droits de propriété intellectuelle par défaut s'appliquent, comme décrit dans (Halchenko et Hanke 2015), ce qui peut freiner la possibilité de reproduire certains articles.

Enfin, d'autres raisons sont mentionnées de manière informelle et personnelle par les auteurs eux-mêmes dans le sondage mené par Collberg et Proebsting (2016). Par exemple, certains auteurs hésitent à publier leur code car ils estiment qu'il devrait être nettoyé ou modifié. Ils considèrent que leur code n'est pas assez propre pour être partagé, ce qui est regrettable. Parfois, le code n'était pas initialement destiné à être partagé, et le rendre facilement accessible nécessiterait trop d'effort de la part de l'auteur qui n'est pas toujours à jour avec les meilleures pratiques en génie logiciel. Les problèmes de licence peuvent également empêcher les auteurs de publier leur code, en particulier lorsqu'il s'agit de logiciels non open source. De plus, une différence dans l'accessibilité du code a été observée entre le domaine public et le domaine privé. Fait intéressant, certains auteurs ne peuvent plus utiliser leur propre code parce que la seule
chercheur, de sa volonté à mettre en place certaines bonnes pratiques favorisant la recherche reproductible, mais également un contexte scientifique facilitant ou non la mise en place d'une recherche reproductible, certains facteurs étant extérieurs au chercheur.

<figure><img src="image_3.png" /><figcaption>**Figure 1.** *Les différentes raisons de pertes de la reproductibilité pour les sciences ayant recours à l'informatique*</figcaption></figure>

## 4.1. La science ouverte

Une des raisons principales sous-jacentes à l'incapacité de reproduire les articles scientifiques est la réticence ou l'échec des auteurs à partager leurs artefacts (codes, scripts, données, etc.). Sans partage de codes et de données, la reproductibilité d'un travail scientifique utilisant un ordinateur pour produire une partie de ses résultats est impossible (soit une grande partie de la recherche, que ce soit en informatique, mais également en biologie, et physique, et autres). L'essor de l'informatique parmi tous les domaines scientifiques a contribué à la crise de la reproductibilité, comme l'a bien décrit Ben Marwick (Marwick 2015). La plupart des auteurs qui
personne qui savait l'utiliser a quitté le laboratoire ! Cela souligne l'importance de mettre en œuvre de bonnes pratiques de génie logiciel pour éviter de tels écueils. De surcroît, plus conventionnellement, le code peut être perdu. Cela peut être dû à des plantages ou à de mauvaises politiques de sauvegarde, parfois le langage de programmation ou le style peuvent être trop obscurs ou dépassés pour être utilisés par quelqu'un d'autre. La non-divulgation peut aussi être intentionnelle pour atténuer les risques tels que la découverte d'une vulnérabilité de sécurité, et d'empêcher son exploitation par quiconque. Les grands modèles de langages peuvent scruter les codes et aider des « hackers » mal intentionnés.

Le principal moyen pour accroître le mouvement de la science ouverte est d'en parler. De nombreux articles sur la recherche reproductible mettent en effet en lumière l'importance de la science ouverte. Cependant, il existe des exemples concrets d'actions entreprises pour renforcer l'ouverture de la science. L'un des premiers projets de science ouverte était peut-être le Stanford Exploration Project de Jon Claerbout. Plus récemment, le CERN a développé Zenodo, dans le cadre de la science ouverte. L'Inria propose Software Heritage pour archiver l'ensemble des versions de codes sources afin d'archiver la connaissance (Di Cosmo, Zacchiroli 2017). Les journaux réagissent également, comme le montre la politique de PLOS (PLOS one n.d.). Les États, qui ont un pouvoir de financement, doivent également s'impliquer dans la science ouverte, comme l'Institut National de la Santé (Collins et Tabak 2014) ou le gouvernement français (Ministère de l'enseignement supérieur et de la recherche 2021) qui soutient fortement l'initiative l'archive ouverte HAL. Enfin, l'intégration de l'enseignement de la science ouverte et de la reproductibilité dans le cadre éducatif des jeunes chercheurs pourrait permettre de faire avancer cette cause (Janz 2016), c'est la voie qu'ont
plaident en faveur de la recherche reproductible soulignent l'importance du partage des codes et des données. En effet, de nombreuses études citées précédemment ont indiqué que les problèmes de reproductibilité proviennent principalement de l'absence de partage de ces éléments.

L'utilisation de logiciels propriétaires peut également entraîner des problèmes de reproductibilité. Dans (Nüst et al. 2020), les auteurs rappellent que nous avons besoin de « l'open source » pour pouvoir avoir une science reproductible. L'Académie Nationale des Sciences, de l'Ingénierie et de la Médecine (National Academies of Sciences 2019) déclare que les agences de financement devraient financer la science ouverte. Un autre aspect a son importance : la propriété intellectuelle du code publié. Sans licence explicite, les droits de propriété intellectuelle par défaut s'appliquent, comme décrit dans (Halchenko et Hanke 2015), ce qui peut freiner la possibilité de reproduire certains articles.

Enfin, d'autres raisons sont mentionnées de manière informelle et personnelle par les auteurs eux-mêmes dans le sondage mené par Collberg et Proebsting (2016). Par exemple, certains auteurs hésitent à publier leur code car ils estiment qu'il devrait être nettoyé ou modifié. Ils considèrent que leur code n'est pas assez propre pour être partagé, ce qui est regrettable. Parfois, le code n'était pas initialement destiné à être partagé, et le rendre facilement accessible nécessiterait trop d'efforts de la part de l'auteur qui n'est pas toujours à jour avec les meilleures pratiques en génie logiciel. Les problèmes de licence peuvent également empêcher les auteurs de publier leur code, en particulier lorsqu'il s'agit de logiciels non open source. De plus, une différence dans l'accessibilité du code a été observée entre le domaine public et le domaine privé. Fait intéressant, certains auteurs ne peuvent plus utiliser leur propre code parce que la seule personne qui savait l'utiliser a quitté le laboratoire ! Cela souligne l'importance de mettre en œuvre de bonnes pratiques de génie logiciel pour éviter de tels écueils. De surcroît, plus conventionnellement, le code peut
choisi Konrad Hinsen, Arnaud Legrand, et Christophe Pouzat avec leur proposition de MOOC sur la recherche reproductible (Pouzat et al. 2018) qui se décline maintenant en deux niveaux.

## 4.2. Documentation

La documentation, dans le contexte de la recherche scientifique, fait référence à la sauvegarde et à la fourniture d'informations détaillées sur le code, les logiciels, les méthodes et les procédures expérimentales utilisées dans une étude. Dans le contexte de la recherche reproductible en informatique, l'importance de la documentation lors du partage du code est primordiale. Une documentation précise et complète est essentielle pour faciliter la réplication des résultats de recherche et promouvoir la transparence et la crédibilité au sein de la communauté scientifique. Comme le souligne l'étude (Boettiger 2015), une documentation incomplète ou imprécise sur la manière d'installer et d'exécuter le code peut être un obstacle significatif à la reproduction, en particulier pour les chercheurs qui ne sont peut-être pas familiers avec les outils spécifiques et les gestionnaires de paquets impliqués. Ce problème est encore souligné dans (Kitzes et al. 2018), où les auteurs discutent de la disponibilité des données et des logiciels, y compris l'importance d'une documentation adéquate, des pratiques open-source, des techniques d'ingénierie logicielle et des considérations sur les droits d'auteur.

Les meilleures pratiques, telles que définies dans (Wilson et al. 2014), soulignent la nécessité de documenter la conception et l'objectif du code plutôt que de se concentrer uniquement sur ses mécanismes. En réalisant cela, les chercheurs permettent à d'autres de comprendre la fonctionnalité du code et ses objectifs, facilitant ainsi la reproductibilité. L'étude dans (Boettiger 2015) souligne également l'impact d'une documentation
être perdu. Cela peut être dû à des plantages ou à de mauvaises politiques de sauvegarde, parfois le langage de programmation ou le style peuvent être trop obscurs ou dépassés pour être utilisés par quelqu'un d'autre. La non-divulgation peut aussi être intentionnelle pour atténuer les risques tels que la découverte d'une vulnérabilité de sécurité, et d'empêcher son exploitation par quiconque.

Le principal moyen pour accroître le mouvement de la science ouverte est d'en parler. De nombreux articles sur la recherche reproductible mettent en effet en lumière l'importance de la science ouverte. Cependant, il existe des exemples concrets d'actions entreprises pour renforcer l'ouverture de la science. L'un des premiers projets de science ouverte était peut-être le Stanford Exploration Project de Jon Claerbout. Plus récemment, le CERN a développé Zenodo, dans le cadre de la science ouverte. L'Inria propose Software Heritage pour archiver l'ensemble des versions de codes sources afin d'archiver la connaissance (Di Cosmo, Zacchiroli 2017). Les journaux réagissent également, comme le montre la politique de PLOS (PLOS one n.d.). Les États, qui ont un pouvoir de financement, doivent également s'impliquer dans la science ouverte, comme l'Institut National de la Santé (Collins et Tabak 2014) ou le gouvernement français (Ministère de l'enseignement supérieur et de la recherche 2021) qui soutient fortement l'initiative de l'archive ouverte HAL. Enfin, l'intégration de l'enseignement de la science ouverte et de la reproductibilité dans le cadre éducatif des jeunes chercheurs pourrait permettre de faire avancer cette cause (Janz 2016), c'est la voie qu'ont choisi Konrad Hinsen, Arnaud Legrand, et Christophe Pouzat avec leur proposition de MOOC sur la recherche reproductible (Pouzat et al. 2018) qui se décline maintenant en deux niveaux.
imprécise sur la reproduction des analyses, un nombre significatif d'expériences utilisant des logiciels populaires n'étant pas reproductibles en raison d'une documentation incomplète.

De plus, dans le domaine en évolution rapide de l'intelligence artificielle (IA), les pratiques de documentation sont cruciales pour garantir la reproductibilité, comme le souligne Gundersen et Kjensmo (2018). De nombreuses études de recherche en IA manquent de méthodes et de codes bien documentés, rendant difficile la reproduction des résultats rapportés et freinant les progrès dans le domaine. Cependant, l'article reconnaît également que les pratiques de documentation se sont améliorées au fil du temps, soulignant l'importance de poursuivre les efforts pour promouvoir et maintenir des normes de documentation rigoureuses.

Une documentation efficace des logiciels et du code est un aspect fondamental de la recherche reproductible en informatique. Les chercheurs doivent s'efforcer de fournir une documentation claire et complète, incluant les procédures d'installation, les descriptions des paramètres et la justification de la conception. Une documentation adéquate permet non seulement de reproduire les résultats de recherche, mais favorise également la collaboration, le partage des connaissances et l'avancement de la science.

## 4.3. Statistiques

En 2005, l'article de Ioannidis précédemment cité (Ioannidis 2005) a fortement impacté le monde de la recherche reproductible. Il affirmait que ses simulations démontrent que les affirmations des publications scientifiques sont plus susceptibles d'être fausses que vraies, soulevant des questions sur la qualité des résultats de recherche et leurs implications pour le développement scientifique. L'importance des statistiques en recherche
## 4.2. Documentation

La documentation, dans le contexte de la recherche scientifique, fait référence à la sauvegarde et à la fourniture d'informations détaillées sur le code, les logiciels, les méthodes et les procédures expérimentales utilisées dans une étude. Dans le contexte de la recherche reproductible en informatique, l'importance de la documentation lors du partage du code est primordiale. Une documentation précise et complète est essentielle pour faciliter la réplication des résultats de recherche et promouvoir la transparence et la crédibilité au sein de la communauté scientifique. Comme le souligne l'étude (Boettiger 2015), une documentation incomplète ou imprécise sur la manière d'installer et d'exécuter le code peut être un obstacle significatif à la reproduction, en particulier pour les chercheurs qui ne sont peut-être pas familiers avec les outils spécifiques et les gestionnaires de paquets impliqués. Ce problème est encore souligné dans (Kitzes et al. 2018), où les auteurs discutent de la disponibilité des données et des logiciels, y compris l'importance d'une documentation adéquate, des pratiques open-source, des techniques d'ingénierie logicielle et des considérations sur les droits d'auteur.

Les meilleures pratiques, telles que définies dans (Wilson et al. 2014), soulignent la nécessité de documenter la conception et l'objectif du code plutôt que de se concentrer uniquement sur ses mécanismes. En réalisant cela, les chercheurs permettent à d'autres de comprendre la fonctionnalité du code et ses objectifs, facilitant ainsi la reproductibilité. L'étude dans (Boettiger 2015) souligne également l'impact d'une documentation imprécise sur la reproduction des analyses, un nombre significatif d'expériences utilisant des logiciels populaires n'étant pas reproductibles en raison d'une documentation incomplète.
est en effet majeure. La statistique joue un rôle crucial dans la détection et l'évitement de résultats faux-positifs, qui sont une préoccupation significative dans la recherche scientifique et dans le domaine médical en particulier. Plusieurs problèmes en statistique peuvent conduire à une perte de reproductibilité dans les articles, ce qui est plus, dans ce cas, une question de réplicabilité (la capacité à obtenir la même conclusion scientifique en réalisant une autre expérience).

Le « P-hacking », défini comme la manipulation des analyses statistiques pour obtenir des résultats statistiquement significatifs, est l'un des principaux facteurs contribuant à la crise de la reproductibilité. Les pratiques de P-hacking, telles que le choix sélectif des données ou la réalisation de multiples tests statistiques jusqu'à l'obtention d'un résultat significatif, peuvent conduire à des conclusions biaisées et peu fiables. Comme décrit dans (Forstmeier et al. 2017), ce problème est exacerbé par la pression lié à la culture scientifique de ne publier que des résultats statistiquement significatifs, ce qui peut donc créer un biais dans la recherche scientifique, puisque toutes les études trouvant un résultat négatif ne seront pas publiées, celles trouvant un résultat positif apparaîtront comme correcte sans nuance. Ils présentent le fait que la diminution de la taille de l'échantillon (parfois pour des raisons éthiques d de préservation des animaux de laboratoires), la pression impliquant la recherche d'innovation et la réalisation de tests multiples peuvent tous augmenter la probabilité de conclusions positives erronées. Pour aborder ces problèmes, il est essentiel d'adopter des pratiques rigoureuses en recherche. Positionner les observateurs en aveugle pendant la collecte et l'analyse des données, et rapporter tous les résultats, qu'ils soient significatifs ou non, sont quelques-unes des stratégies qui peuvent améliorer l'objectivité de la recherche scientifique. De plus, réallouer les
De plus, dans le domaine en évolution rapide de l'intelligence artificielle (IA), les pratiques de documentation sont cruciales pour garantir la reproductibilité, comme le soulignent Gundersen et Kjensmo (2018). De nombreuses études de recherche en IA manquent de méthodes et de codes bien documentés, rendant difficile la reproduction des résultats rapportés et freinant les progrès dans le domaine. Cependant, l'article reconnaît également que les pratiques de documentation se sont améliorées au fil du temps, soulignant l'importance de poursuivre les efforts pour promouvoir et maintenir des normes de documentation rigoureuses.

Une documentation efficace des logiciels et du code est un aspect fondamental de la recherche reproductible en informatique. Les chercheurs doivent s'efforcer de fournir une documentation claire et complète, incluant les procédures d'installation, les descriptions des paramètres et la justification de la conception. Une documentation adéquate permet non seulement de reproduire les résultats de recherche, mais favorise également la collaboration, le partage des connaissances et l'avancement de la science.

## 4.3. Statistiques

En 2005, l'article de Ioannidis précédemment cité (Ioannidis 2005) a fortement impacté le monde de la recherche reproductible. Il affirmait que ses simulations démontrent que les affirmations des publications scientifiques sont plus susceptibles d'être fausses que vraies, soulevant des questions sur la qualité des résultats de recherche et leurs implications pour le développement scientifique. L'importance des statistiques en recherche est en effet majeure. La statistique joue un rôle crucial dans la détection et l'évitement de résultats faux-positifs, qui sont une préoccupation significative dans la recherche scientifique et dans le domaine médical en particulier. Plusieurs problèmes en statistique peuvent conduire à une perte
efforts de la recherche de nouveauté et de découverte vers la reproduction de résultats de recherche importants peut bénéficier à la communauté scientifique. Il est crucial d'évaluer la recherche sur la base de la rigueur scientifique plutôt que de se fier uniquement aux métriques liées aux facteurs d'impact des journaux. La dépendance aux P-values comme mesure de preuve et de véracité est un autre aspect critique à considérer dans le contexte de la recherche reproductible. Les P-values sont souvent utilisées pour déterminer la force des preuves dans les résultats de recherche, mais des études ont remis en question leur fiabilité et leur objectivité (Nuzzo 2014). Les chercheurs ont noté que même de petits changements dans la significativité statistique peuvent entraîner des changements importants dans l'interprétation des résultats (Gelman et Stern 2006). Cette divergence peut conduire à des conclusions trompeuses et souligne la nécessité d'une réévaluation des méthodes statistiques (Nuzzo 2014).

Formuler des hypothèses après les résultats est nommé « HARKing », c'est une autre pratique courante dans la communication scientifique qui peut compromettre la reproductibilité (Kerr 1998). Le HARKing implique de présenter des hypothèses après-coup comme si elles étaient des hypothèses a priori dans les rapports de recherche. Cette pratique peut conduire à des interprétations biaisées et inexactes des données, car elle permet aux chercheurs de choisir sélectivement des hypothèses qui s'alignent avec leurs résultats. Bien que les motivations derrière le HARKing soient variées, il est largement considéré comme inapproprié et a des implications négatives pour l'intégrité scientifique.

Il est important de faire attention à ne pas surestimer l'importance de résultats qui semblent significatifs du point de vue statistique. Gelman et Stern (2006) ont expliqué que des variations importantes dans les niveaux
de reproductibilité dans les articles, ce qui est plus, dans ce cas, une question de réplicabilité (la capacité à obtenir la même conclusion scientifique en réalisant une autre expérience).

Le « P-hacking », défini comme la manipulation des analyses statistiques pour obtenir des résultats statistiquement significatifs, est l'un des principaux facteurs contribuant à la crise de la reproductibilité. Les pratiques de P-hacking, telles que le choix sélectif des données ou la réalisation de multiples tests statistiques jusqu'à l'obtention d'un résultat significatif, peuvent conduire à des conclusions biaisées et peu fiables. Comme décrit dans (Forstmeier et al. 2017), ce problème est exacerbé par la pression liée à la culture scientifique de ne publier que des résultats statistiquement significatifs, ce qui peut donc créer un biais dans la recherche scientifique, puisque toutes les études trouvant un résultat négatif ne seront pas publiées, celles trouvant un résultat positif apparaîtront comme correctes sans nuance. Ils présentent le fait que la diminution de la taille de l'échantillon (parfois pour des raisons éthiques de préservation des animaux de laboratoire), la pression impliquant la recherche d'innovation et la réalisation de tests multiples peuvent tous augmenter la probabilité de conclusions positives erronées. Pour aborder ces problèmes, il est essentiel d'adopter des pratiques rigoureuses en recherche. Positionner les observateurs en aveugle pendant la collecte et l'analyse des données, et rapporter tous les résultats, qu'ils soient significatifs ou non, sont quelques-unes des stratégies qui peuvent améliorer l'objectivité de la recherche scientifique. De plus, réallouer les efforts de la recherche de nouveauté et de découverte vers la reproduction de résultats de recherche importants peut bénéficier à la communauté scientifique. Il est crucial d'évaluer la recherche sur la base de la rigueur scientifique plutôt que de se fier uniquement aux métriques liées aux facteurs d'impact des journaux. La dépendance aux P-values comme mesure de preuve et de véracité est un autre aspect critique à considérer
de significativité statistique pourraient en réalité représenter des
changements mineurs et non significatifs dans les données réelles. Cette
tendance à sur-interpréter les résultats est une erreur différente d'autres
problèmes communs en statistique, comme confondre la significativité
statistique avec l'importance pratique, diviser les résultats en catégories
« significatif » ou « non significatif », et choisir des seuils de significativité
de façon arbitraire. Cette erreur est fréquente et il est donc crucial que les
étudiants et les professionnels en soient conscients pour éviter de mal
interpréter les données.

Les erreurs de type I et de type II sont des concepts dans les tests
d'hypothèses liés à un rejet incorrect ou à un échec à rejeter une hypothèse
nulle. Une erreur de type I, également connue sous le nom de faux positif,
se produit lorsque l'hypothèse nulle est vraie, mais est rejetée à tort. Par
exemple, conclure qu'un médicament est efficace alors qu'il ne l'est pas.
Une erreur de type II, ou faux négatif, se produit lorsque l'hypothèse nulle
est fausse mais échoue à être rejetée par erreur, comme conclure qu'un
médicament est inefficace alors qu'il fonctionne réellement. La puissance
statistique est la probabilité de rejeter correctement une fausse hypothèse
nulle, ce qui signifie qu'elle mesure la capacité d'un test à détecter un effet
lorsqu'il y en a un. La significativité statistique, d'autre part, indique la
probabilité que la différence ou l'association observée dans les données ne
soit pas due au hasard, souvent évaluée par une « valeur p ». Une puissance
statistique élevée et un résultat significatif statistiquement (typiquement
une valeur p inférieure à 0,05) contribuent à la fiabilité des résultats des
tests. Ce seuil se révèle être souvent bien insuffisant et J.P.A. Ioannidis a
proposé de le ramener à 0,005 pour réduire le taux potentiel de faux
positifs des résultats obtenus (Ioannidis 2005), l'article initial très cité a été
dans le contexte de la recherche reproductible. Les P-values sont souvent utilisées pour déterminer la force des preuves dans les résultats de recherche, mais des études ont remis en question leur fiabilité et leur objectivité (Nuzzo 2014). Les chercheurs ont noté que même de petits changements dans la significativité statistique peuvent entraîner des changements importants dans l'interprétation des résultats (Gelman et Stern 2006). Cette divergence peut conduire à des conclusions trompeuses et souligne la nécessité d'une réévaluation des méthodes statistiques (Nuzzo 2014).

Formuler des hypothèses après les résultats est nommé « HARKing », c'est une autre pratique courante dans la communication scientifique qui peut compromettre la reproductibilité (Kerr 1998). Le HARKing implique de présenter des hypothèses après-coup comme si elles étaient des hypothèses a priori dans les rapports de recherche. Cette pratique peut conduire à des interprétations biaisées et inexactes des données, car elle permet aux chercheurs de choisir sélectivement des hypothèses qui s'alignent avec leurs résultats. Bien que les motivations derrière le HARKing soient variées, il est largement considéré comme inapproprié et a des implications négatives pour l'intégrité scientifique.

Il est important de faire attention à ne pas surestimer l'importance de résultats qui semblent significatifs du point de vue statistique. Gelman et Stern (2006) ont expliqué que des variations importantes dans les niveaux de significativité statistique pourraient en réalité représenter des changements mineurs et non significatifs dans les données réelles. Cette tendance à sur-interpréter les résultats est une erreur différente d'autres problèmes communs en statistique, comme confondre la significativité statistique avec l'importance pratique, diviser les résultats en catégories « significatif » ou « non significatif », et choisir des seuils de significativité de façon arbitraire. Cette erreur est fréquente et il est donc crucial que les
récemment corrigé en 2022 (erreur mineure, une paire de parenthèse manquante dans la table 2) (Ioannidis 2022).

La puissance statistique est une question significative dans des domaines comme la psychologie. Dans le cadre hybride des tests de significativité de l'hypothèse nulle (NHST) prévalent dans la science psychologique, la puissance statistique est définie comme la probabilité de rejeter correctement une fausse hypothèse nulle, évitant ainsi une erreur de type II. À mesure que la puissance statistique augmente, la probabilité d'une erreur de type II diminue. Cependant, la puissance statistique a tendance à être sous-estimée par rapport au niveau de significativité. Typiquement, les chercheurs fixent un seuil de 5% pour les erreurs de type I mais acceptent souvent un taux plus élevé de 20% pour les erreurs de type II, indiquant une plus grande préoccupation pour éviter les faux positifs que les faux négatifs. Malgré le seuil conventionnel de 20% pour les erreurs de type II, l'attention réelle à la puissance statistique est souvent insuffisante, conduisant à un taux d'erreur de type II effectif qui pourrait être aussi élevé que 80%. Ce problème est évident dans divers domaines, soulignant une lacune critique dans les pratiques statistiques, comme décrit dans (Button et Munafò 2017), et cela peut conduire à des problèmes de reproductibilité (Clayson *et al.* 2019). Une solution serait d'augmenter la taille de l'échantillon et d'accroître la précision de la variable pour diminuer l'erreur de mesure, donc nécessiterait plus de calculs (Button et Munafò 2017). Dans (Strong et Alvarez 2019), les auteurs abordent la crise de la réplication dans la recherche psychologique en proposant l'utilisation du « bootstrap resampling » combiné avec des données pilotes ou synthétiques pour améliorer la puissance statistique et la reproductibilité des expériences. Cette méthode permet une analyse personnalisée des conceptions expérimentales, en tenant compte de facteurs tels que la taille
étudiants et les professionnels en soient conscients pour éviter de mal interpréter les données.

Les erreurs de type I et de type II sont des concepts dans les tests d'hypothèses liés à un rejet incorrect ou à un échec à rejeter une hypothèse nulle. Une erreur de type I, également connue sous le nom de faux positif, se produit lorsque l'hypothèse nulle est vraie, mais est rejetée à tort. Par exemple, conclure qu'un médicament est efficace alors qu'il ne l'est pas. Une erreur de type II, ou faux négatif, se produit lorsque l'hypothèse nulle est fausse mais échouée à être rejetée par erreur, comme conclure qu'un médicament est inefficace alors qu'il fonctionne réellement. La puissance statistique est la probabilité de rejeter correctement une fausse hypothèse nulle, ce qui signifie qu'elle mesure la capacité d'un test à détecter un effet lorsqu'il y en a un. La significativité statistique, d'autre part, indique la probabilité que la différence ou l'association observée dans les données ne soit pas due au hasard, souvent évaluée par une « valeur p ». Une puissance statistique élevée et un résultat significatif statistiquement (typiquement une valeur p inférieure à 0,05) contribuent à la fiabilité des résultats des tests. Ce seuil se révèle être souvent bien insuffisant et J.P.A. Ioannidis a proposé de le ramener à 0,005 pour réduire le taux potentiel de faux positifs des résultats obtenus (Ioannidis 2005), l'article initial très cité a été récemment corrigé en 2022 (erreur mineure, une paire de parenthèses manquante dans la table 2) (Ioannidis 2022).

La puissance statistique est une question significative dans des domaines comme la psychologie. Dans le cadre hybride des tests de significativité de l'hypothèse nulle (NHST) prévalent dans la science psychologique, la puissance statistique est définie comme la probabilité de rejeter correctement une fausse hypothèse nulle, évitant ainsi une erreur de type II. À mesure que la puissance statistique augmente, la probabilité d'une erreur de type II diminue. Cependant, la puissance statistique a tendance à être sous-estimée par rapport au niveau de significativité. Typiquement, les
de l'échantillon, le nombre d'essais et les critères d'exclusion, souvent négligés dans les outils traditionnels d'analyse de puissance. L'article explique comment le « bootstrap resampling » aide à estimer à la fois la variabilité de l'échantillonnage et de la mesure en simulant des expériences plusieurs fois, ce qui améliore la précision des prédictions de puissance. En utilisant une boîte à outils MATLAB fournie par les auteurs, les chercheurs peuvent appliquer ces méthodes de simulation à leurs données pilotes pour concevoir des expériences qui sont plus susceptibles de produire des résultats reproductibles.

Certains outils sont conçus pour aider avec les statistiques, comme R Markdown, un outil conçu pour simplifier l'analyse statistique reproductible, le rendant adapté à la fois pour la recherche avancée et les cours d'introduction à la statistique (Baumer et al. 2014), ou bien Pernet et al. (2013) qui ont introduit une boîte à outils Matlab open-source conçue pour des analyses de corrélation robustes. La méthode de corrélation de Pearson, couramment utilisée en psychologie, a une portée limitée car elle ne détecte que les relations linéaires et est très influencée par les valeurs extrêmes, qui peuvent donner une image faussée des données. Pour pallier ces limites, une boîte à outils Matlab en accès libre propose deux alternatives : « percentage-bend correlation and skipped-correlations ». La première méthode réduit l'impact des valeurs extrêmes en leur attribuant moins de poids, tandis que la seconde les élimine directement de l'analyse. Ces approches offrent une meilleure approximation des véritables relations entre les données, en maintenant un équilibre entre la minimisation des erreurs positives et le maintien de la capacité à détecter des associations réelles.
chercheurs fixent un seuil de 5% pour les erreurs de type I mais acceptent souvent un taux plus élevé de 20% pour les erreurs de type II, indiquant une plus grande préoccupation pour éviter les faux positifs que les faux négatifs. Malgré le seuil conventionnel de 20% pour les erreurs de type II, l'attention réelle à la puissance statistique est souvent insuffisante, conduisant à un taux d'erreur de type II effectif qui pourrait être aussi élevé que 80%. Ce problème est évident dans divers domaines, soulignant une lacune critique dans les pratiques statistiques, comme décrit dans (Button et Munafò 2017), et cela peut conduire à des problèmes de reproductibilité (Clayson et al. 2019). Une solution serait d'augmenter la taille de l'échantillon et d'accroître la précision de la variable pour diminuer l'erreur de mesure, donc nécessiterait plus de calculs (Button et Munafò 2017). Dans (Strong et Alvarez 2019), les auteurs abordent la crise de la réplication dans la recherche psychologique en proposant l'utilisation du « bootstrap resampling » combiné avec des données pilotes ou synthétiques pour améliorer la puissance statistique et la reproductibilité des expériences. Cette méthode permet une analyse personnalisée des conceptions expérimentales, en tenant compte de facteurs tels que la taille de l'échantillon, le nombre d'essais et les critères d'exclusion, souvent négligés dans les outils traditionnels d'analyse de puissance. L'article explique comment le « bootstrap resampling » aide à estimer à la fois la variabilité de l'échantillonnage et de la mesure en simulant des expériences plusieurs fois, ce qui améliore la précision des prédictions de puissance. En utilisant une boîte à outils MATLAB fournie par les auteurs, les chercheurs peuvent appliquer ces méthodes de simulation à leurs données pilotes pour concevoir des expériences qui sont plus susceptibles de produire des résultats reproductibles.

Certains outils sont conçus pour aider avec les statistiques, comme R Markdown, un outil conçu pour simplifier l'analyse statistique reproductible, le rendant adapté à la fois pour la recherche avancée et les
4.4. Culture scientifique

Le paysage actuel de la recherche scientifique est affecté par plusieurs
problèmes qui entravent la reproductibilité, essentielle pour l'avancement
de la science. Un problème majeur est le manque d'incitations de la part
des journaux et des conférences à fournir tous les artéfacts liés à un article
de recherche, tels que les ensembles de données, le code ou des méthodes
détailées, qui sont essentiels pour une transparence et une reproductibilité
complètes. Nosek a écrit : « *En raison de fortes incitations à l'innovation et de
faibles incitations à la confirmation, la reproduction directe est rarement pratiquée ou
publiée* », et « *Les découvertes innovantes rapportent des récompenses de publication,
d'emploi et de titularisation ; les découvertes répliquées produisent un haussement
d'épaules.* » (Collaboration 2012), citation présente dans (Collberg &
Proebsting, 2016). Cela crée une culture qui décourage les efforts de
reproduction, amenant souvent les chercheurs en début de carrière à se
détourner de telles entreprises au profit d'activités qui renforcent leurs
profils académiques. Ce problème est aggravé par la mentalité enracinée
du « *publish or perish* » qui met la pression sur les chercheurs pour produire
continuellement de nouvelles découvertes, parfois au détriment d'une
recherche rigoureuse et de qualité. Le processus de révision par les pairs
n'est pas non plus sans failles. Souvent, il ne privilégie pas la
reproductibilité des études, ce qui peut conduire à la publication de
résultats qui ne peuvent pas être vérifiés indépendamment. Enfin, le biais
de publication en faveur des résultats positifs entraîne souvent une sous-
représentation des résultats négatifs ou nuls, faussant davantage le paysage
de la recherche. Collectivement, ces problèmes posent des défis
importants à l'intégrité et à la fiabilité de la recherche scientifique, appelant
à des changements systémiques dans la manière dont nous menons et
communiquons la science. Bajpai *et al*. (2017) discutent de trois éléments
cours d'introduction à la statistique (Baumer et al. 2014), ou bien Pernet et al. (2013) qui ont introduit une boîte à outils Matlab open-source conçue pour des analyses de corrélation robustes. La méthode de corrélation de Pearson, couramment utilisée en psychologie, a une portée limitée car elle ne détecte que les relations linéaires et est très influencée par les valeurs extrêmes, qui peuvent donner une image faussée des données. Pour pallier ces limites, une boîte à outils Matlab en accès libre propose deux alternatives : « *percentage-bend correlation and skipped-correlations* ». La première méthode réduit l'impact des valeurs extrêmes en leur attribuant moins de poids, tandis que la seconde les élimine directement de l'analyse. Ces approches offrent une meilleure approximation des véritables relations entre les données, en maintenant un équilibre entre la minimisation des erreurs positives et le maintien de la capacité à détecter des associations réelles.

## 4.4. Culture scientifique

Le paysage actuel de la recherche scientifique est affecté par plusieurs problèmes qui entravent la reproductibilité, essentielle pour l'avancement de la science. Un problème majeur est le manque d'incitations de la part des journaux et des conférences à fournir tous les artéfacts liés à un article de recherche, tels que les ensembles de données, le code ou des méthodes détaillées, qui sont essentiels pour une transparence et une reproductibilité complètes. Nosek a écrit : « *En raison de fortes incitations à l'innovation et de faibles incitations à la confirmation, la reproduction directe est rarement pratiquée ou publiée* », et « *Les découvertes innovantes rapportent des récompenses de publication, d'emploi et de titularisation ; les découvertes répliquées produisent un haussement d'épaules.* » (Collaboration 2012), citation présente dans (Collberg & Proebsting, 2016). Cela crée une culture qui décourage les efforts de reproduction, amenant souvent les chercheurs en début de carrière à se
qui posent des problèmes pour la reproductibilité : le manque d'incitations des journaux (qui privilégient uniquement les articles innovants), le processus de révision en double aveugle qui oblige les auteurs à cacher des informations ou des données potentiellement crucales, et les relecteurs (reviewers) qui ne testent pas la reproductibilité. Le papier de Bajpai et al. propose d'inclure une section sur la reproductibilité dans les articles pour encourager les auteurs, promouvoir les articles reproductibles et améliorer le processus de relecture. Baker (2016) présente 14 facteurs qui peuvent contribuer à la perte de reproductibilité, principalement liés à des problèmes statistiques, à la pression de publication et au code non disponible, entre autres. Il propose 11 solutions qui abordent directement les problèmes soulevés, comme l'amélioration de la formation statistique des chercheurs. Munafò et al. (2017) identifient les biais cognitifs, les améliorations des méthodes, une collaboration accrue entre les chercheurs et une relecture par les pairs améliorée comme problèmes et solutions pour améliorer la reproductibilité. Ten Hagen (2016) soutient que les journaux privilégient excessivement la nouveauté, ce qui mine la recherche reproductible, car cela décourage les chercheurs de tenter de répliquer des résultats précédemment publiés. Fanelli (2010) montre que la pression des financements et de réussir à sortir une publication pousse les chercheurs à publier uniquement des résultats positifs, limitant la publication de résultats négatifs qui pourraient également contribuer aux progrès scientifiques en révélant ce qui ne fonctionne pas ou n'est pas vrai, y compris les résultats négatifs de reproduction d'articles précédemment publiés.
détourner de telles entreprises au profit d'activités qui renforcent leurs
profils académiques. Ce problème est aggravé par la mentalité enracinée du
« publish or perish » qui met la pression sur les chercheurs pour produire
continuellement de nouvelles découvertes, parfois au détriment d'une
recherche rigoureuse et de qualité. Le processus de révision par les pairs
n'est pas non plus sans failles. Souvent, il ne privilégie pas la
reproductibilité des études, ce qui peut conduire à la publication de
résultats qui ne peuvent pas être vérifiés indépendamment. Enfin, le biais
de publication en faveur des résultats positifs entraîne souvent une sous-
représentation des résultats négatifs ou nuls, faussant davantage le paysage
de la recherche. Collectivement, ces problèmes posent des défis importants
à l'intégrité et à la fiabilité de la recherche scientifique, appelant à des
changements systémiques dans la manière dont nous menons et
communiquons la science. Bajpai et al. (2017) discutent de trois éléments
qui posent des problèmes pour la reproductibilité : le manque d'incitations
des journaux (qui privilégient uniquement les articles innovants), le
processus de révision en double aveugle qui oblige les auteurs à cacher des
informations ou des données potentiellement crucales, et les relecteurs
(reviewers) qui ne testent pas la reproductibilité. Le papier de Bajpai et al.
propose d'inclure une section sur la reproductibilité dans les articles pour
encourager les auteurs, promouvoir les articles reproductibles et améliorer
le processus de relecture. Baker (2016) présente 14 facteurs qui peuvent
contribuer à la perte de reproductibilité, principalement liés à des
problèmes statistiques, à la pression de publication et au code non
disponible, entre autres. Il propose 11 solutions qui abordent directement
les problèmes soulevés, comme l'amélioration de la formation statistique
des chercheurs. Munafò et al. (2017) identifient les biais cognitifs, les
améliorations des méthodes, une collaboration accrue entre les chercheurs
et une relecture par les pairs améliorée comme problèmes et solutions pour
améliorer la reproductibilité. Ten Hagen (2016) soutient que les journaux
4.5. Environnement logiciel

L'environnement logiciel est un aspect crucial de la recherche reproductible, car l'utilisation des ordinateurs est devenue omniprésente dans le monde scientifique. Un grand nombre de publications utilisent désormais du code, des scripts ou des données en entrée pour générer certains résultats.

Même si vous partagez votre code et vos données, il est très peu probable que la personne tentant de reproduire les résultats ait exactement le même environnement logiciel que vous. Par conséquent, elle pourrait ne pas être capable d'exécuter correctement le code en raison d'incompatibilités potentielles, de différentes bibliothèques, ou de logiciels non disponibles (Hinsen 2013). Pour résoudre ce problème, Hinsen suggère d'utiliser des bibliothèques fiables et éprouvées, d'écrire du code clairement (tout en tenant compte de la performance, en particulier dans le contexte du calcul à hautes performances), de documenter les formats utilisés, d'évaluer les dépendances et de fournir des exemples prêts à l'emploi pour faciliter la prise en main. En 2015, Hinsen continue de fournir des informations précieuses, conseillant la prudence concernant l'ajout de données d'entrée non mentionnées dans les workflows, et les éventuels bugs logiciels ou matériels qui en découlent (Hinsen 2014). Desquilbet et al. (2019) discutent également de ces différents défis dans leur livre. La couche de l'environnement logiciel englobe différents niveaux. Tout d'abord, nous avons le système d'exploitation. Les calculs peuvent différer à travers l'utilisation de différents systèmes d'exploitation, car l'utilisation du matériel peut différer. L'utilisation de systèmes basés sur Linux (open source) est obligatoire pour la recherche reproductible, car nous avons besoin de logiciels open source (contrairement à Windows ou MacOS qui ne sont pas open source, donc rendent plus difficile
privilégient excessivement la nouveauté, ce qui mine la recherche reproductible, car cela décourage les chercheurs de tenter de répliquer des résultats précédemment publiés. Fanelli (2010) montre que la pression des financements et de réussir à sortir une publication pousse les chercheurs à publier uniquement des résultats positifs, limitant la publication de résultats négatifs qui pourraient également contribuer aux progrès scientifiques en révélant ce qui ne fonctionne pas ou n'est pas vrai, y compris les résultats négatifs de reproduction d'articles précédemment publiés.

## 4.5. Environnement logiciel

L'environnement logiciel est un aspect crucial de la recherche reproductible, car l'utilisation des ordinateurs est devenue omniprésente dans le monde scientifique. Un grand nombre de publications utilisent désormais du code, des scripts ou des données en entrée pour générer certains résultats.

Même si vous partagez votre code et vos données, il est très peu probable que la personne tentant de reproduire les résultats ait exactement le même environnement logiciel que vous. Par conséquent, elle pourrait ne pas être capable d'exécuter correctement le code en raison d'incompatibilités potentielles, de différentes bibliothèques, ou de logiciels non disponibles (Hinsen 2013). Pour résoudre ce problème, Hinsen suggère d'utiliser des bibliothèques fiables et éprouvées, d'écrire du code clairement (tout en tenant compte de la performance, en particulier dans le contexte du calcul à haute performance), de documenter les formats utilisés, d'évaluer les dépendances et de fournir des exemples prêts à l'emploi pour faciliter la prise en main. En 2015, Hinsen continue de fournir des informations précieuses, conseillant la prudence concernant l'ajout de données d'entrée non mentionnées dans les workflows, et les éventuels bugs logiciels ou matériels qui en découlent (Hinsen 2014).
l'obtention de la même configuration pour assurer la reproductibilité). Linux est fortement conseillé car il est largement utilisé, entièrement open source et offre de nombreux outils pour mener à bien une recherche reproductible. Deuxièmement, comme mentionné, les codes utilisent presque toujours des bibliothèques. Ainsi, lorsqu'ils sont partagés, si la machine de destination n'a pas accès aux mêmes bibliothèques, avec les mêmes versions, le code ne fonctionnera pas. Chaque bibliothèque peut également avoir des dépendances avec d'autres. Cela est connu sous le nom de « Dependency Hell » (Boettiger 2015). Des outils de haut niveau, comme des cadriciels (frameworks par la suite) ou des bibliothèques, peuvent également agir comme des boîtes noires, qui ne permettent pas à un autre chercheur d'utiliser le code pour sa propre recherche. C'est ce que Hinsen a appelé "code réutilisable VS code rééditable" (Hinsen 2018).

En calcul à hautes performances, les compilateurs sont des logiciels importants. Le calcul intensif nécessite d'éviter le gaspillage de d'énergie et de temps de calcul, or les langages compilés sont connus pour être plus efficaces que les langages interprétés. Ainsi, les codes exécutés sur des clusters de calcul ou des superordinateurs sont principalement produits par des compilateurs C, C++ ou Fortran. Malheureusement, de nombreux scientifiques qui ne sont pas spécialisés en informatique, des biologistes ou des chimistes, peuvent par exemple trouver plus facile de travailler avec Python ou R, qui sont des langages utiles avec de nombreuses bibliothèques que ce soit pour les aspects statistiques ou encore pour développer des modèles d'apprentissage automatique. Différentes versions des compilateurs, ou du langage de programmation, peuvent également entraîner une perte de reproductibilité. L'importance de l'ensemble de la pile logicielle a déjà été prêchée par Claerbout selon la
Desquilbet et al. (2019) discutent également de ces différents défis dans leur livre. La couche de l'environnement logiciel englobe différents niveaux. Tout d'abord, nous avons le système d'exploitation. Les calculs peuvent différer à travers l'utilisation de différents systèmes d'exploitation, car l'utilisation du matériel peut différer. L'utilisation de systèmes basés sur Linux (open source) est obligatoire pour la recherche reproductible, car nous avons besoin de logiciels open source (contrairement à Windows ou MacOS qui ne sont pas open source, donc rendent plus difficile l'obtention de la même configuration pour assurer la reproductibilité). Linux est fortement conseillé car il est largement utilisé, entièrement open source et offre de nombreux outils pour mener à bien une recherche reproductible. Deuxièmement, comme mentionné, les codes utilisent presque toujours des bibliothèques. Ainsi, lorsqu'ils sont partagés, si la machine de destination n'a pas accès aux mêmes bibliothèques, avec les mêmes versions, le code ne fonctionnera pas. Chaque bibliothèque peut également avoir des dépendances avec d'autres. Cela est connu sous le nom de « Dependency Hell » (Boettiger 2015). Des outils de haut niveau, comme des cadriels (frameworks par la suite) ou des bibliothèques, peuvent également agir comme des boîtes noires, qui ne permettent pas à un autre chercheur d'utiliser le code pour sa propre recherche. C'est ce que Hinsen a appelé « code réutilisable VS code rééditable » (Hinsen 2018).

En calcul à haute performance, les compilateurs sont des logiciels importants. Le calcul intensif nécessite d'éviter le gaspillage d'énergie et de temps de calcul, or les langages compilés sont connus pour être plus efficaces que les langages interprétés. Ainsi, les codes exécutés sur des clusters de calcul ou des superordinateurs sont principalement produits par des compilateurs C, C++ ou Fortran. Malheureusement, de nombreux scientifiques qui ne sont pas spécialisés en informatique, des biologistes ou des chimistes, peuvent par exemple trouver plus facile de travailler avec Python ou R, qui sont des langages utiles avec de nombreuses
citation de Donoho que nous avons mentionnée plus tôt (Buckheit et Donoho 1995).

## 4.6. Workflow

Le problème du workflow (littéralement flux de travail ou processus métier) dans la recherche reproductible tourne autour de la nécessité de capturer et de communiquer l'ensemble du processus d'analyse des données, d'expérimentation et d'exécution du code de manière claire et organisée, dans un ordre précis. En effet, la plupart du temps, un article n'utilise pas un seul code ou script, mais une succession de codes s'appliquant à différentes données. Un workflow reproductible devrait permettre à d'autres chercheurs de vérifier et de reproduire de manière indépendante les résultats présentés dans une étude. Cependant, en pratique, les workflows manquent souvent de transparence, rendant difficile pour les autres de comprendre les étapes suivies, les paramètres utilisés et les transformations de données appliquées. Ce manque de clarté peut venir d'une documentation incomplète ou ambiguë, rendant difficile la reproduction de la séquence exacte d'opérations qui a conduit aux résultats rapportés. De plus, les workflows peuvent impliquer plusieurs outils, bibliothèques et dépendances logicielles, et la gestion des interactions entre ces composants ajoute de la complexité au processus de reproductibilité. Le problème est aggravé lorsque les workflows sont répartis sur différents scripts, notebook ou même différents langages de programmation, il devient alors plus difficile de s'assurer que chaque détail est capturé de manière précise et cohérente. De plus, le contrôle de version devient crucial dans la gestion des changements apportés au workflow au fil du temps. Sans un suivi de version approprié, il peut être difficile de retracer l'état exact du workflow lorsqu'un résultat particulier a été obtenu.
bibliothèques que ce soit pour les aspects statistiques ou encore pour
développer des modèles d'apprentissage automatique. Différentes versions
des compilateurs, ou du langage de programmation, peuvent également
entraîner une perte de reproductibilité. L'importance de l'ensemble de la
pile logicielle a déjà été prêchée par Claerbout selon la citation de Donoho
que nous avons mentionnée plus tôt (Buckheit et Donoho 1995).

4.6. Workflow

Le problème du workflow (littéralement flux de travail ou processus métier) dans la recherche reproductible tourne autour de la nécessité de capturer et de communiquer l'ensemble du processus d'analyse des données, d'expérimentation et d'exécution du code de manière claire et organisée, dans un ordre précis. En effet, la plupart du temps, un article n'utilise pas un seul code ou script, mais une succession de codes s'appliquant à différentes données. Un workflow reproductible devrait permettre à d'autres chercheurs de vérifier et de reproduire de manière indépendante les résultats présentés dans une étude. Cependant, en pratique, les workflows manquent souvent de transparence, rendant difficile pour les autres de comprendre les étapes suivies, les paramètres utilisés et les transformations de données appliquées. Ce manque de clarté peut venir d'une documentation incomplète ou ambiguë, rendant difficile la reproduction de la séquence exacte d'opérations qui a conduit aux résultats rapportés. De plus, les workflows peuvent impliquer plusieurs outils, bibliothèques et dépendances logicielles, et la gestion des interactions entre ces composants ajoute de la complexité au processus de reproductibilité. Le problème est aggravé lorsque les workflows sont répartis sur différents scripts, notebooks ou même différents langages de programmation, il devient alors plus difficile de s'assurer que chaque détail est capturé de manière précise et cohérente. De plus, le contrôle de version
<figure><img src="image_3.png" /><figcaption>**Figure 2.** *Exemple de workflow scientifique, amenant à une publication.*</figcaption></figure>

Aborder le problème du workflow en recherche reproductible nécessite d'adopter les meilleures pratiques pour documenter les étapes, fournir des explications claires sur la raison des prises de décisions, et assurer la disponibilité de toutes les données et codes nécessaires. Sarah Cohen-Boulakia et ses collègues ont réalisé une étude assez exhaustive sur les workflows, axée sur les sciences de la vie (Cohen-Boulakia et al. 2017). Stanisic et al. (2015) ont également travaillé sur ce thème. Nous discuterons des outils utilisables par la suite. La figure 2 présente une représentation visuelle d'un concept de workflow d'une publication scientifique. Cette illustration met en évidence un workflow standard comprenant des étapes telles que la collecte de données, la préparation des données, l'élaboration de solutions logicielles et la conduite d'analyses de données, aboutissant à la création d'un article scientifique. Pour reproduire une telle étude, il est
devient crucial dans la gestion des changements apportés au workflow au
fil du temps. Sans un suivi de version approprié, il peut être difficile de
retracer l'état exact du workflow lorsqu'un résultat particulier a été obtenu.

<figure><img src="image_4.png" /><figcaption>**Figure 2.** *Exemple de workflow scientifique, amenant à une publication.*</figcaption></figure>

Aborder le problème du workflow en recherche reproductible nécessite d'adopter les meilleures pratiques pour documenter les étapes, fournir des explications claires sur la raison des prises de décisions, et assurer la disponibilité de toutes les données et codes nécessaires. Sarah Cohen-Boulakia et ses collègues ont réalisé une étude assez exhaustive sur les workflows, axée sur les sciences de la vie (Cohen-Boulakia et al. 2017). Stanisic et al. (2015) ont également travaillé sur ce thème. Nous discuterons des outils utilisables par la suite. La figure 2 présente une représentation visuelle d'un concept de workflow d'une publication scientifique. Cette illustration met en évidence un workflow standard comprenant des étapes telles que la collecte de données, la préparation des données, l'élaboration
nécessaire qu'un scientifique soit capable de rejouer cette séquence entière, appelée le workflow. Le résultat précis de chaque étape dépend d'un environnement logiciel particulier, ce qui est une contrainte supplémentaire.

## 4.7. Génie logiciel

Nous avons mentionné que l'ingénierie logicielle est sujet important pour la recherche reproductible et qu'il peut être souvent négligé. En effet, avec l'omniprésence de l'informatique, de nombreux domaines scientifiques utilisent la programmation pour mener leurs recherches. Désormais, vous utilisez du code pour préparer des données, les transformer, les visualiser, réaliser vos statistiques, concevoir vos expériences, etc. Pour le calcul à hautes performances, vous aurez principalement besoin de compétences de bas niveau (réalisation de scripts au niveau du système d'exploitation, connaissance des systèmes d'exploitation et de langages informatiques efficaces comme C, C++ ou Fortran). Pour des objectifs plus généraux et l'analyse de données, les scientifiques utilisent principalement Matlab, Python ou R, ainsi que certains frameworks, bibliothèques et autres outils de haut niveau. Toutes ces compétences peuvent être difficiles à acquérir pour certains d'entre eux, notamment pour ceux qui n'ont pas suivi un cursus classique en informatique (qu'ils soient biologistes, physiciens, sociologues ou chimistes...). Alors que les technologies de haut niveau offrent un moyen plus facile de gérer le calcul, elles sont également moins stables et plus obscures que les technologies de bas niveau, car elles cachent la complexité dans des boîtes noires, rendant la reproductibilité plus difficile. Ce sont les « défauts » des technologies modernes de haut niveau.
de solutions logicielles et la conduite d'analyses de données, aboutissant à
la création d'un article scientifique. Pour reproduire une telle étude, il est
nécessaire qu'un scientifique soit capable de rejouer cette séquence entière,
appelée le workflow. Le résultat précis de chaque étape dépend d'un
environnement logiciel particulier, ce qui est une contrainte
supplémentaire.

4.7. Génie logiciel

Nous avons mentionné que l'ingénierie logicielle est un sujet important
pour la recherche reproductible et qu'il peut être souvent négligé. En effet,
avec l'omniprésence de l'informatique, de nombreux domaines
scientifiques utilisent la programmation pour mener leurs recherches.
Désormais, vous utilisez du code pour préparer des données, les
transformer, les visualiser, réaliser vos statistiques, concevoir vos
expériences, etc. Pour le calcul à haute performance, vous aurez
principalement besoin de compétences de bas niveau (réalisation de scripts
au niveau du système d'exploitation, connaissance des systèmes
d'exploitation et de langages informatiques efficaces comme C, C++ ou
Fortran). Pour des objectifs plus généraux et l'analyse de données, les
scientifiques utilisent principalement Matlab, Python ou R, ainsi que
certains frameworks, bibliothèques et autres outils de haut niveau. Toutes
ces compétences peuvent être difficiles à acquérir pour certains d'entre eux,
notamment pour ceux qui n'ont pas suivi un cursus classique en
informatique (qu'ils soient biologistes, physiciens, sociologues ou
chimistes...). Alors que les technologies de haut niveau offrent un moyen
plus facile de gérer le calcul, elles sont également moins stables et plus
obscures que les technologies de bas niveau, car elles cachent la complexité
dans des boîtes noires, rendant la reproductibilité plus difficile. Ce sont les
« défauts » des technologies modernes de haut niveau.
Lors de la publication, fournir des artefacts est une bonne chose, mais la qualité logicielle du code produit est essentielle pour avoir un code maintenable, lisible et évolutif. De plus, pour aider à garantir la reproductibilité, plusieurs outils ont été développés. Cependant, ils nécessitent souvent certaines compétences en informatique. Les non-informaticiens utilisent des ordinateurs comme un outil, sans avoir la connaissance suffisante de ce que fait réellement l'ordinateur (et peuvent supposer par exemple le déterminisme absolu de leurs machines). Dans (Hinsen 2018), Konrad Hinsen présente un exemple de pourquoi il est important de savoir ce qui se passe en coulisse. Dans un exemple, il charge un jeu de données sur la santé avec le logiciel Pandas à partir d'un fichier csv (il a pris cinq ans de données). Pandas essaie automatiquement de trouver les types de données appropriés pour les données, Hinsen a remarqué un biais. Alors que le type utilisé pour ses données était « int64 », lorsqu'il a chargé l'ensemble du jeu de données (33 ans contre 5 ans), les données ont été reconnues comme étant désormais du type « objet » (et non plus « int64 »). Dans la documentation de Pandas, il est mentionné une « conversion intelligente des données tabulaires », mais les règles utilisées ne sont pas explicites. Bien sûr, vous pouvez gérer cela avec un peu d'effort, mais cela montre qu'il y a des complexités cachées auxquelles un non-expert pourrait ne pas penser. L'article souligne également le fait qu'un code réutilisable et rééditable ne sont pas la même chose. Si vous fournissez du code avec votre article, et dans votre analyse, vous utilisez une fonction complexe d'une bibliothèque de haut niveau, d'autres chercheurs pourront-ils éditer cette fonction pour leur propre usage ? Les fonctions de haut niveau peuvent agir comme une boîte noire, et toute mise à jour de la bibliothèque peut vous faire perdre la reproductibilité au bit près. Un code rééditable sera plus compréhensible pour la majorité.
Lors de la publication, fournir des artefacts est une bonne chose, mais la qualité logicielle du code produit est essentielle pour avoir un code maintenable, lisible et évolutif. De plus, pour aider à garantir la reproductibilité, plusieurs outils ont été développés. Cependant, ils nécessitent souvent certaines compétences en informatique. Les non-informaticiens utilisent des ordinateurs comme un outil, sans avoir la connaissance suffisante de ce que fait réellement l'ordinateur (et peuvent supposer par exemple le déterminisme absolu de leurs machines). Dans (Hinsen 2018), Konrad Hinsen présente un exemple de pourquoi il est important de savoir ce qui se passe en coulisse. Dans un exemple, il charge un jeu de données médicales avec le logiciel Pandas à partir d'un fichier csv (il a pris cinq ans de données). Pandas essaie automatiquement de trouver les types de données appropriés pour les données, Hinsen a remarqué un biais. Alors que le type utilisé pour ses données était « int64 », lorsqu'il a chargé l'ensemble du jeu de données (33 ans contre 5 ans), les données ont été reconnues comme étant désormais du type « objet » (et non plus « int64 »). Dans la documentation de Pandas, il est mentionné une « conversion intelligente des données tabulaires », mais les règles utilisées ne sont pas explicites. Bien sûr, vous pouvez gérer cela avec un peu d'effort, mais cela montre qu'il y a des complexités cachées auxquelles un non-expert pourrait ne pas penser. L'article souligne également le fait qu'un code réutilisable et rééditable ne sont pas la même chose. Si vous fournissez du code avec votre article, et dans votre analyse, vous utilisez une fonction complexe d'une bibliothèque de haut niveau, d'autres chercheurs pourront-ils modifier cette fonction pour leur propre usage ? Les fonctions de haut niveau peuvent agir comme une boîte noire, et toute mise à jour de la bibliothèque peut vous faire perdre la reproductibilité au bit près. Un code rééditable sera plus compréhensible pour la majorité.

Comme discuté précédemment, il existe des cas où un groupe de chercheurs pourrait cesser d'utiliser leur propre logiciel car la seule
Comme discuté précédemment, il existe des cas où un groupe de chercheur pourrait cesser d'utiliser leur propre logiciel car la seule personne compétente connaissant son fonctionnement ne fait plus partie de l'équipe. Cela souligne la nécessité d'adhérer à des principes robustes d'ingénierie logicielle pour prévenir ce type de scénarios. De plus, dans une situation plus typique, un logiciel peut devenir inaccessible en raison d'une défaillance matérielle rendant le code inutilisable (suppression par exemple), ou lorsque le langage de programmation utilisé pour développer le programme pourrait devenir si rare ou si archaïque qu'il est peu pratique pour d'autres chercheurs de l'adopter.
personne compétente connaissant son fonctionnement ne fait plus partie de l'équipe. Cela souligne la nécessité d'adhérer à des principes robustes d'ingénierie logicielle pour prévenir ce type de scénarios. De plus, dans une situation plus typique, un logiciel peut devenir inaccessible en raison d'une défaillance matérielle rendant le code inutilisable (suppression par exemple), ou lorsque le langage de programmation utilisé pour développer le programme pourrait devenir si rare ou si archaïque qu'il est peu pratique pour d'autres chercheurs de l'adopter.
# Chapitre 5

## Les problèmes de reproductibilité propre au calcul haute performance

### 5.1. Exécution de programmes en parallèle

Le calcul parallèle implique l'exécution simultanée de multiples tâches pour un traitement plus rapide de la charge de travail. Avec le calcul parallèle viennent de nouveaux défis, tels que les changements dans l'ordre d'exécution d'opérations en virgule flottante, qui peut introduire des résultats numériques non reproductibles (Goldberg 1991). La combinaison du comportement non déterministe dans les programmes parallèles et de la non-associativité des opérations en virgule flottante pose des défis significatifs en termes de reproductibilité, comme le montre l'exemple de la Figure 3.

<figure><img src="image_4.png" /><figcaption>**Figure 3.** Exemple de la non-associativité des opérations à virgule flottante.</figcaption></figure>

Dans (Hunold 2015), cet état de l'art nous apprend qu'une majorité de chercheurs en informatique utilisant le calcul à hautes performances sont préoccupés par la reproductibilité de leurs articles. Une grande majorité, 94%, croient que la reproductibilité des articles devrait être améliorée dans
# Chapitre 5

## Les problèmes de reproductibilité propres au calcul haute performance

### 5.1. Exécution de programmes en parallèle

Le calcul parallèle implique l'exécution simultanée de multiples tâches pour un traitement plus rapide de la charge de travail. Avec le calcul parallèle viennent de nouveaux défis, tels que les changements dans l'ordre d'exécution d'opérations en virgule flottante, qui peuvent introduire des résultats numériques non reproductibles (Goldberg 1991). La combinaison du comportement non déterministe dans les programmes parallèles et de la non-associativité des opérations en virgule flottante pose des défis significatifs en termes de reproductibilité, comme le montre l'exemple de la figure 3.

```
>>> (pow(10,-3) + 1) - 1
0.0009999999999998899
>>> pow(10,-3) + (1-1)
0.001
```

<caption>**Figure 3.** Exemple de la non-associativité des opérations à virgule flottante.</caption>

Dans (Hunold 2015), cet état de l'art nous apprend qu'une majorité de chercheurs en informatique utilisant le calcul à haute performance sont préoccupés par la reproductibilité de leurs articles. Une grande majorité, 94%, croient que la reproductibilité des articles devrait être améliorée dans le domaine du calcul parallèle. Dans les mêmes proportions, ils pensent que les articles de recherche actuels dans le domaine du calcul parallèle sont très peu reproductibles. En calcul parallèle, l'ordre d'exécution des tâches
le domaine du calcul parallèle. Dans les mêmes proportions, ils pensent
que les articles de recherche actuels dans le domaine du calcul parallèle
sont très peu reproductibles. En calcul parallèle, l'ordre d'exécution des
tâches peut varier en raison de facteurs tels que l'ordonnancement des
tâches, l'équilibrage de charge et le multithreading. Dans (Chohra et al.
2016), les auteurs supposent que le non-déterminisme peut provenir de
l'ordonnancement dynamique des données, de la disponibilité des
ressources physiques et de différents ensembles d'instructions du
processeur. Ce comportement non déterministe peut conduire à différents
résultats lorsque le même programme est exécuté plusieurs fois dans les
mêmes conditions. Cela pose des défis pour la reproductibilité, car les
résultats peuvent varier de manière imprévisible et cela rend le débogage
et la validation des résultats particulièrement difficiles. De plus, la non-
associativité de l'arithmétique en virgule flottante exacerbe le problème.
Les opérations en virgule flottante telles que la multiplication et l'addition
ne sont pas associatives dans l'espace des fractions Q où sont situés les
nombres réels en virgule flottante. Cela signifie que changer l'ordre des
opérations peut donner des résultats différents. Lorsque ces opérations
non associatives sont combinées avec le calcul parallèle, atteindre des
résultats identiques au niveau binaire, ce qui peut être un aspect critique
du débogage, devient un défi encore plus significatif dans le calcul
Exascale (Demmel et Nguyen 2013b). Les systèmes Exascale, se référant
aux superordinateurs capables d'effectuer 10¹⁸ opérations en virgule
flottante par seconde, présentent une puissance de calcul immense mais
posent également des défis significatifs pour la reproductibilité. Parmi les
deux opérations en virgule flottante non associatives, l'addition est plus
sensible. Cela implique la production d'algorithmes de compensation,
comme des sommes compensées par exemple, qui sont particulièrement
peut varier en raison de facteurs tels que l'ordonnancement des tâches,
l'équilibrage de charge et le multithreading. Dans (Chohra et al. 2016), les
auteurs supposent que le non-déterminisme peut provenir de
l'ordonnancement dynamique des données, de la disponibilité des
ressources physiques et de différents ensembles d'instructions du
processeur. Ce comportement non déterministe peut conduire à différents
résultats lorsque le même programme est exécuté plusieurs fois dans les
mêmes conditions. Cela pose des défis pour la reproductibilité, car les
résultats peuvent varier de manière imprévisible et cela rend le débogage et
la validation des résultats particulièrement difficiles. De plus, la non-
associativité de l'arithmétique en virgule flottante exacerbe le problème.
Les opérations en virgule flottante telles que la multiplication et l'addition
ne sont pas associatives dans l'espace des fractions Q où sont situés les
nombres réels en virgule flottante. Cela signifie que changer l'ordre des
opérations peut donner des résultats différents. Lorsque ces opérations
non associatives sont combinées avec le calcul parallèle, atteindre des
résultats identiques au niveau binaire, ce qui peut être un aspect critique du
débogage, devient un défi encore plus significatif dans le calcul Exascale
(Demmel et Nguyen 2013b). Les systèmes Exascale, se référant aux
superordinateurs capables d'effectuer 10¹⁸ opérations en virgule flottante
par seconde, présentent une puissance de calcul immense mais posent
également des défis significatifs pour la reproductibilité. Parmi les deux
opérations en virgule flottante non associatives, l'addition est plus sensible.
Cela implique la production d'algorithmes de compensation, comme des
sommes compensées par exemple, qui sont particulièrement utiles pour la
phase de réduction. Il s'agit d'une étape cruciale dans les algorithmes
parallèles où les résultats partiels calculés par différentes unités de
traitement en parallèle (par exemple, des threads, des processeurs, des
nœuds de calcul) sont combinés ou agrégés pour produire un résultat
utile pour la phase de réduction. Il s'agit d'une étape cruciale dans les
algorithmes parallèles où les résultats partiels calculés par différentes
unités de traitement en parallèle (par exemple, des threads, des
processeurs, des nœuds de calcul) sont combinés ou agrégés pour produire
un résultat global. Pour les opérations flottantes, l'ordre et la façon dont
on organise les calculs pour compenser les erreurs d'arrondis sont
importants.

Nous présenterons des solutions pour les problèmes de reproductibilité de ces calculs parallèles dans la section 7. Avec le nouveau superordinateur Frontier (Top500) et de nombreux autres superordinateurs proposés depuis plus d'une décennie, nous avons dépassé le million de cœurs capables de réaliser des calculs en parallèle.

L'utilisation de grilles de calcul (« Grid Computing ») ou de
bibliothèques parallèles telles que Message Passing Interface (MPI), avec
le passage de messages asynchrones sur de grandes simulations, peut
fréquemment conduire à une exécution où l'on change l'ordre des
opérations dans les calculs sur des nombres en arithmétique flottante.
Dans ce cas, nous avons une perte de répétabilité, ce qui augmentera
considérablement la difficulté de débogage.

5.2. Simulations de Monte-Carlo et nombres pseudo-aléatoires

Lors de notre recherche bibliographique de la recherche reproductible
pour le calcul à hautes performances, nous avons souvent vu l'affirmation
selon laquelle les simulations de Monte Carlo ne sont pas déterministes.
Bien qu'il soit vrai que les simulations de Monte Carlo peuvent être non
déterministes pour les mêmes raisons que d'autres programmes, telles que
l'arithmétique à virgule flottante désordonnée, le parallélisme, etc., nous
soutenons que qualifier les simulations de Monte Carlo de non
global. Pour les opérations flottantes, l'ordre et la façon dont on organise les calculs pour compenser les erreurs d'arrondis sont importants.

Nous présenterons des solutions pour les problèmes de reproductibilité de ces calculs parallèles dans la section 7. Avec le nouveau superordinateur Frontier (Top500) et de nombreux autres superordinateurs proposés depuis plus d'une décennie, nous avons dépassé le million de cœurs capables de réaliser des calculs en parallèle.

L'utilisation de grilles de calcul (« Grid Computing ») ou de bibliothèques parallèles telles que Message Passing Interface (MPI), avec le passage de messages asynchrones sur de grandes simulations, peut fréquemment conduire à une exécution où l'on change l'ordre des opérations dans les calculs sur des nombres en arithmétique flottante. Dans ce cas, nous avons une perte de répétabilité, ce qui augmentera considérablement la difficulté de débogage.

## 5.2. Simulations de Monte-Carlo et nombres pseudo-aléatoires

Lors de notre recherche bibliographique de la recherche reproductible pour le calcul à haute performance, nous avons souvent vu l'affirmation selon laquelle les simulations de Monte Carlo ne sont pas déterministes. Bien qu'il soit vrai que les simulations de Monte Carlo peuvent être non déterministes pour les mêmes raisons que d'autres programmes, telles que l'arithmétique à virgule flottante désordonnée, le parallélisme, etc., nous soutenons que qualifier les simulations de Monte Carlo de non déterministes en raison de l'utilisation d'une source pseudo-aléatoire peut être trompeur. En fait, lors de la production de résultats scientifiques, la méthode de Monte Carlo utilise précisément des modèles déterministes de hasard appelés « Générateurs de Nombres Pseudo Aléatoires » (PRNG). C'est l'approche scientifique utilisée pour simuler le hasard en le maîtrisant et en fournissant de très bonnes propriétés statistiques. C'est un aspect
déterministes en raison de l'utilisation d'une source pseudo-aléatoire peut être trompeur. En fait, lors de la production de résultats scientifiques, la méthode de Monte Carlo utilise précisément des modèles déterministes de hasard appelés « Générateurs de Nombres Pseudo Aléatoires » (PRNG). C'est l'approche scientifique utilisée pour simuler le hasard en le maîtrisant et en fournissant de très bonnes propriétés statistiques. C'est un aspect important dans la conception des générateurs de nombres pseudo-aléatoires, car il est alors possible d'obtenir la répétabilité pour le débogage de chaque expérience « indépendante ». Lors de l'exécution de modèles stochastiques, tels que les simulations de Monte Carlo, les scientifiques expérimentés font un usage intelligent des états des PRNGs. Dans le cas des anciens générateurs il s'agissait de simple graines (seed), afin d'assurer la répétabilité des résultats. La génération de nombres pseudo ou quasi aléatoires est totalement déterministe, ce qui est un atout fort pour les études scientifiques. Cependant cela suppose un usage correct des PRNGs pour obtenir un calcul stochastique reproductible, particulièrement lorsqu'il s'agit de Monte Carlo parallèle. Hellekalek a justement averti les chercheurs en simulation lors de la conférence sur l'informatique parallèle et distribuée de 1998 : « *Ne faites pas confiance au Monte Carlo parallèle* » (Hellekalek 1998). Nous avons également trop souvent vu le mauvais conseil d'initialiser votre PNRG avec « time(NULL) » pour permettre un « vrai aléatoire » y compris dans un ouvrage sur le calcul parallèle ! C'est un mauvais conseil qui ne devrait pas être appliqué pour pouvoir déboguer ou faire un travail statistiquement correct et reproductible. Cette approche utilisable pour des jeux, ou pour produire rapidement quelques jeux d'essais sur un programme débogué est encore trop souvent enseignée. Pour permettre la reproductibilité avec les PRNGs, vous devez maîtriser et sauvegarder méthodiquement les états initiaux et sélectionner une
important dans la conception des générateurs de nombres pseudo-
aléatoires, car il est alors possible d'obtenir la répétabilité pour le débogage
de chaque expérience « indépendante ». Lors de l'exécution de modèles
stochastiques, tels que les simulations de Monte Carlo, les scientifiques
expérimentés font un usage intelligent des états des PRNGs. Dans le cas
des anciens générateurs il s'agissait de simples graines (seed), afin d'assurer
la répétabilité des résultats. La génération de nombres pseudo ou quasi
aléatoires est totalement déterministe, ce qui est un atout fort pour les
études scientifiques. Cependant cela suppose un usage correct des PRNGs
pour obtenir un calcul stochastique reproductible, particulièrement
lorsqu'il s'agit de Monte Carlo parallèle. Hellekalek a justement averti les
chercheurs en simulation lors de la conférence sur l'informatique parallèle
et distribuée de 1998 : « *Ne faites pas confiance au Monte Carlo
parallèle* » (Hellekalek 1998). Nous avons également trop souvent vu le
mauvais conseil d'initialiser votre PNRG avec « time(NULL) » pour
permettre un « vrai aléatoire » y compris dans un ouvrage sur le calcul
parallèle ! C'est un mauvais conseil qui ne devrait pas être appliqué pour
pouvoir déboguer ou faire un travail statistiquement correct et
reproductible. Cette approche utilisable pour des jeux, ou pour produire
rapidement quelques jeux d'essais sur un programme débogué est encore
trop souvent enseignée. Pour permettre la reproductibilité avec les
PRNGs, vous devez maîtriser et sauvegarder méthodiquement les états
initiaux et sélectionner une technique de parallélisation avant d'exécuter
simultanément des instances « indépendantes » de simulations de Monte
Carlo (Hill et al. 2013). La figure 4 présente une méthode de parallélisation
de flux aléatoires grâce à l'utilisation d'un espacement aléatoire, permettant
l'exécution concurrente de calculs parallèles indépendants. Cette approche
repose sur le fait que les flux ne se chevauchent pas afin de maintenir leurs
opérations distinctes. La méthode d'espacement aléatoire est
particulièrement efficace et simple pour les PRNGs ayant de très grandes
technique de parallélisation avant d'exécuter simultanément des instances « indépendantes » de simulations de Monte Carlo (Hill et al. 2013). La figure 4 présente une méthode de parallélisation de flux aléatoires grâce à l'utilisation d'un espacement aléatoire, permettant l'exécution concurrente de calculs parallèles indépendants. Cette approche repose sur le fait que les flux ne se chevauchent pas afin de maintenir leurs opérations distinctes. La méthode d'espacement aléatoire est particulièrement efficace et simple pour les PRNGs ayant de très grandes périodes, où la probabilité de chevauchement des flux est extrêmement faible lors de la sélection de flux aléatoires sur l'ensemble de la période du PRNG. Dans les cas où le risque chevauchement entre les flux est statistiquement trop élevé, des méthodes alternatives comme le fractionnement de séquences sans recouvrement peuvent être utilisées. De plus, il est crucial pour les chercheurs dans la communauté scientifique de comprendre que le terme historique de graine (seed) est différent de l'état complet d'un PRNG moderne. L'état du PRNG dicte les valeurs qu'il produit. Inversement, utiliser une graine implique l'application d'une fonction spécifique pour transformer la graine en un état complet. Il est important de noter que ce processus de transformation peut varier selon les différentes plateformes et technologies, de sorte que la même graine peut conduire à différents flux de nombres aléatoires pour le même algorithme supposé de PRNG, dans différents langages de programmation ou frameworks, ceci impact en particulier les outils d'apprentissage sur lesquels bien des études d'intelligence artificielle se basent.
périodes, où la probabilité de chevauchement des flux est extrêmement faible lors de la sélection de flux aléatoires sur l'ensemble de la période du PRNG. Dans les cas où le risque de chevauchement entre les flux est statistiquement trop élevé, des méthodes alternatives comme le fractionnement de séquences sans recouvrement peuvent être utilisées. De plus, il est crucial pour les chercheurs dans la communauté scientifique de comprendre que le terme historique de graine (seed) est différent de l'état complet d'un PRNG moderne. L'état du PRNG dicte les valeurs qu'il produit. Inversement, utiliser une graine implique l'application d'une fonction spécifique pour transformer la graine en un état complet. Il est important de noter que ce processus de transformation peut varier selon les différentes plateformes et technologies, de sorte que la même graine peut conduire à différents flux de nombres aléatoires pour le même algorithme supposé de PRNG, dans différents langages de programmation ou frameworks, ceci impacte en particulier les outils d'apprentissage sur lesquels bien des études d'intelligence artificielle se basent.

<figure><img src="image_5.png" /><figcaption>**Figure 4.** Exemple de partition de flux stochastiques en utilisant la méthode d'espacement aléatoire</figcaption></figure>

Nous pouvons rencontrer des problèmes en traitant la parallélisation des PRNGs, cependant, nous disposons désormais de PRNGs de haute qualité qui peuvent être parallélisés correctement. Si vous utilisez les bonnes méthodes adaptées aux meilleurs PRNGs, comme décrit dans (Hill et al. 2013), il est possible de paralléliser les simulations de Monte Carlo et d'obtenir une répétabilité avec des résultats identiques au niveau binaire pour toutes les expériences stochastiques (Hill 2015). Voici une courte liste
<figure><img src="image_5.png" /><figcaption>**Figure 4.** Exemple de partition de flux stochastiques en utilisant la méthode d'espacement aléatoire</figcaption></figure>

Nous pouvons rencontrer des problèmes en traitant la parallélisation des PRNGs, cependant, nous disposons désormais de PRNGs de haute qualité qui peuvent être parallélisés correctement. Si vous utilisez les bonnes méthodes adaptées aux meilleurs PRNGs, comme décrit dans (Hill et al. 2013), il est possible de paralléliser les simulations de Monte Carlo et d'obtenir une répétabilité avec des résultats identiques au niveau binaire pour toutes les expériences stochastiques (Hill 2015). Voici une courte liste de certains PRNGs de bonne qualité utilisés pour le calcul parallèle, à partir de la sélection retenue dans (Antunes et Hill 2023) :

- Philox et Threefry, proposés par Salmon et ses collègues lors de la Conférence Supercomputing de 2011 (Salmon et al. 2011). Ils reposent sur des techniques cryptographiques comme AES (Rijmen et Daemen 2001). Ils proposent une technique de paramétrisation solide et facile pour résoudre le problème de distribution de flux stochastiques « indépendants » dans les applications parallèles. En raison de ses contraintes cryptographiques, on peut le considérer comme un générateur lent, mais statistiquement, ce type de générateur est très bon même si nous avons noté certains problèmes de reproductibilité (Hill 2015). Les PRNGs sécurisés d'un point de vue cryptographique sont également connus sous le nom de CS-PRNG (CS pour Crypto-Secure).
de certains PRNGs de bonne qualité utilisés pour le calcul parallèle, à partir
de la sélection retenue dans (Antunes et Hill 2023) :

- Philox et Threefry, proposés par Salmon et ses collègues lors de la Conférence Supercomputing de 2011 (Salmon et al. 2011). Ils reposent sur des techniques cryptographiques comme AES (Rijmen et Daemen 2001). Ils proposent une technique de paramétrisation solide et facile pour résoudre le problème de distribution de flux stochastiques « indépendants » dans les applications parallèles. En raison de ses contraintes cryptographiques, on peut le considérer comme un générateur lent, mais statistiquement, ce type de générateur est très bon même si nous avons noté certains problèmes de reproductibilité (Hill 2015). Les PRNGs sécurisés d'un point de vue cryptographique sont également connus sous le nom de CS-PRNG (CS pour Crypto-Secure).

- MRG32k3a, est un générateur récursif combiné, il a été minutieusement sélectionné par L'Ecuyer par force brute pour répondre aux tests statistiques les plus rigoureux qu'il a lui-même développés (L'Ecuyer 1999). Ce générateur facilite le fait d'avoir de nombreux flux parallèles, c'est un atout dans le calcul parallèle. Cependant, il peut être jusqu'à 19 fois plus lent que le Mersenne Twister dans sa mise en œuvre en C/C++, le rendant moins attrayant pour le calcul parallèle intensif. MRG32k3a est le choix par excellence pour la plus haute qualité statistique, tandis que Mersenne Twister offre de meilleures performances avec une solidité statistique légèrement moindre.

- WELL, développé par Panneton, L'Ecuyer, et Matsumoto (Panneton et al. 2006), améliore le Mersenne Twister d'un point de vue statistique. Provenant des registres à décalage à rétroaction linéaire (LFSR), WELL n'a pas connu une utilisation ou un
- MRG32k3a, est un générateur récursif combiné, il a été minutieusement sélectionné par L'Ecuyer par force brute pour répondre aux tests statistiques les plus rigoureux qu'il a lui-même développés (L'ecuyer 1999). Ce générateur facilite le fait d'avoir de nombreux flux parallèles, c'est un atout dans le calcul parallèle. Cependant, il peut être jusqu'à 19 fois plus lent que le Mersenne Twister dans sa mise en œuvre en C/C++, le rendant moins attrayant pour le calcul parallèle intensif. MRG32k3a est le choix par excellence pour la plus haute qualité statistique, tandis que Mersenne Twister offre de meilleures performances avec une solidité statistique légèrement moindre.

- WELL, développé par Panneton, L'Ecuyer, et Matsumoto (Panneton et al. 2006), améliore le Mersenne Twister d'un point de vue statistique. Provenant des registres à décalage à rétroaction linéaire (LFSR), WELL n'a pas connu une utilisation ou un développement des techniques de parallélisation aussi importante que Mersenne Twister.

- PCG, un PRNG récent, a été créé en 2014 par O'Neill (O'Neill 2014). Il est plébiscité pour ses propriétés statistiques supérieures par rapport aux autres générateurs. La documentation de Numpy recommande son utilisation en raison de ces qualités, mais nous avons observé des failles en faisant un grand nombre de tests avec la bibliothèque de tests statistique TestU01 (discutée plus tard). D'autre part, la documentation de numpy mentionne que des faiblesses statistiques ont été repérées lors de l'utilisation de PCG64 dans un contexte de parallélisme massif. De fait ils ont introduit la version nommée PCG64DXSM que nous n'avons pas encore testée.
développement des techniques de parallélisation aussi importante
que Mersenne Twister.

- PCG, un PRNG récent, a été créé en 2014 par O'Neill (O'neill 2014). Il est plébiscité pour ses propriétés statistiques supérieures par rapport aux autres générateurs. La documentation de Numpy recommande son utilisation en raison de ces qualités, mais nous avons observé des failles en faisant un grand nombre de tests avec la bibliothèque de tests statistique TestU01 (discutée plus tard). D'autre part, la documentation de numpy mentionne que des faiblesses statistiques ont été repérées lors de l'utilisation de PCG64 dans un contexte de parallélisme massif. De fait, ils ont introduit la version nommée PCG64DXSM que nous n'avons pas encore testée.

- Mersenne Twister (MT), introduit par Matsumoto et Nishimura (Matsumoto et Nishimura 1998), est rapidement devenu connu en raison de sa période gigantesque de $2^{19937} - 1$. C'était le premier d'une famille de générateurs, certains conçus pour les GPU et les Field Programmable Gate Array (FPGA). La version SFMT utilise les possibilités vectorielles des processeurs modernes (Single Instruction Multiple Data), et est plus rapide que le MT original, il a de meilleures propriétés statistiques et propose une période encore plus grande allant jusqu'à $2^{216091} - 1$, mais il est beaucoup moins connu que le MT original (Saito et Matsumoto 2006). Cependant, aucun des PRNGs de cette famille n'est adapté aux applications cryptographiques. Les failles connues ne posent pas de problèmes aux applications de simulation et son implémentation optimisée est particulièrement rapide contrairement à ce que l'on peut lire parfois.

- La dernière version de Xoshiro par (Blackman et Vigna 2021), basée sur un principe « XOR, shift, rotate ». Les auteurs proposent l'application de « scramblers » non-linéaires sur les sorties du générateur Xoshiro (ainsi que sur Xoroshiro – Xor Rotate Shift
- Mersenne Twister (MT), introduit par Matsumoto et Nishimura (Matsumoto et Nishimura 1998), est rapidement devenu connu en raison de sa période gigantesque de $2^{19937} - 1$. C'était le premier d'une famille de générateurs, certains conçus pour les GPU et les Field Programmable Gate Array (FPGA). La version SFMT utilise les possibilités vectorielles des processeurs modernes (Single Instruction Multiple Data), et est plus rapide que le MT original, il a de meilleures propriétés statistiques et propose une période encore plus grande allant jusqu'à $2^{216091} - 1$, mais il est beaucoup moins connu que le MT original (Saito et Matsumoto 2006). Cependant, aucun des PRNGs de cette famille n'est adapté aux applications cryptographiques. Les failles connues ne posent pas de problèmes aux applications de simulation et son implémentation optimisée est particulièrement rapide contrairement à ce que l'on peut lire parfois.

- La dernière version de Yoshiro par (Blackman et Vigna 2021), basée sur un principe « XOR, shift, rotate ». Les auteurs proposent l'applications de « scramblers » non-linéaire sur les sorties du générateur Yoshiro (ainsi que sur Xoroshiro – Xor Rotate Shift Rotate de la même famille). Les auteurs affirment, que tout en maintenant la rapidité du générateur, ils ont fourni des améliorations pour éviter les échecs dans les tests statistiques liés à la linéarité tels que MatrixRank et LinearComp de TestU01 (sur lequel échoue le Mersenne Twister, un échec au test MatrixRank peut également survenir pour MT qui n'est pas un générateur de qualité cryptographique).

L'utilisation de certaines versions de ces algorithmes n'est pas toujours explicitement spécifiée par les langages, les bibliothèques ou les
Rotate de la même famille). Les auteurs affirment, que tout en maintenant la rapidité du générateur, ils ont fourni des améliorations pour éviter les échecs dans les tests statistiques liés à la linéarité tels que MatrixRank et LinearComp de TestU01 (sur lequel échoue le Mersenne Twister, un échec au test MatrixRank peut également survenir pour MT qui n'est pas un générateur de qualité cryptographique).

L'utilisation de certaines versions de ces algorithmes n'est pas toujours explicitement spécifiée par les langages, les bibliothèques ou les frameworks (cadriciels). Par conséquent, cela peut entraîner des différences dans la qualité statistique et des différences dans le flux de nombres aléatoires générés, et ceci peut conduire à des difficultés pour reproduire le travail d'autres personnes, qui se basent simplement sur le nom des PRNGs utilisés. Par exemple, les langages R et Python, en considérant le module random de la bibliothèque standard, utilisent tous les deux le générateur Mersenne Twister de Matsumoto et Nishimura (générateur par défaut pour R et unique générateur pour Python). Par contre, R utilise la première version (1998) de MT qui renvoie un entier de 32 bits divisé par $2^{32}$ (et utilise donc seulement 32 des 53 bits de la mantisse d'un double) et qui connaît des problèmes lors d'initialisation dans certains états. Il s'agit d'un ancien défaut connu sous le nom de « zero excess initialization state ». Il se manifeste lorsque l'état du générateur est initialisé avec un excès de zéros, affectant ainsi la qualité statistique des nombres générés. Ce problème a été corrigé par la suite. Python utilise la version de 2002 qui a corrigé ce défaut dans la version initiale de MT et dans ses variantes (Saito et al, 2008). Cette version combine deux tirages successifs d'entiers de 32 bits afin d'obtenir un double pour lequel tous les bits de la mantisse sont utilisés (ce dernier point n'est malheureusement pas documenté dans Python). Cet exemple illustre bien comment différentes versions d'un
frameworks (cadriciels). Par conséquent, cela peut entraîner des
différences dans la qualité statistique et des différences dans le flux de
nombres aléatoires générés, et ceci peut conduire à des difficultés pour
reproduire le travail d'autres personnes, qui se basent simplement sur le
nom des PRNGs utilisés. Par exemple, les langages R et Python, en
considérant le module random de la bibliothèque standard, utilisent tous
les deux le générateur Mersenne Twister de Matsumoto et Nishimura
(générateur par défaut pour R et unique générateur pour Python). Par
contre, R utilise la première version (1998) de MT qui renvoie un entier de
32 bits divisé par $2^{32}$ (et utilise donc seulement 32 des 53 bits de la mantisse
d'un double) et qui connais des problèmes lors d'initialisation dans certains
états. Il s'agit d'un ancien défaut connu sous le nom de « zero excess
initialization state ». Il se manifeste lorsque l'état du générateur est initialisé
avec un excès de zéros, affectant ainsi la qualité statistique des nombres
générés. Ce problème a été corrigé par la suite. Python utilise la version de
2002 qui a corrigé ce défaut dans la version initiale de MT et dans ses
variantes (Saito et al, 2008). Cette version combine deux tirages successifs
d'entiers de 32 bits afin d'obtenir un double pour lequel tous les bits de la
mantisse sont utilisés (ce dernier point n'est malheureusement pas
documenté dans Python). Cet exemple illustre bien comment différentes
versions d'un même algorithme peuvent entraîner des variations dans les
flux de nombres aléatoires générés ainsi que dans la qualité statistique de
ces derniers.

Une autre famille de nombres aléatoires existe : les vrais nombres
aléatoires. Les vrais nombres aléatoires sont des nombres générés de
manière imprévisible et non déterministe (contrairement aux nombres
pseudo aléatoire évoqués précédemment). Un générateur de vrai nombres
aléatoire (TRNG, pour True Random Number Generator) est un
même algorithme peuvent entraîner des variations dans les flux de nombres aléatoires générés ainsi que dans la qualité statistique de ces derniers.

Une autre famille de nombres aléatoires existe : les vrais nombres aléatoires. Les vrais nombres aléatoires sont des nombres générés de manière imprévisible et non déterministe (contrairement aux nombres pseudo aléatoires évoqués précédemment). Un générateur de vrais nombres aléatoire (TRNG, pour True Random Number Generator) est un dispositif ou une méthode qui génère de véritables nombres aléatoires. Contrairement aux PRNGs, qui utilisent des algorithmes déterministes et un état initial pour produire des séquences de nombres qui semblent aléatoires, les TRNGs s’appuient sur des processus physiques imprévisibles ou des sources de hasard pour générer de vrais nombres aléatoires. Certaines sources de hasard couramment utilisées dans les TRNGs peuvent être le bruit électronique, la désintégration radioactive, le bruit atmosphérique ou le bruit optique. Pour faire de la science reproductible avec des TRNGs, vous devez sauvegarder chaque nombre aléatoire que vous utilisez. Lorsqu’on traite des simulations de Monte Carlo lourdes, comme en physique des hautes énergies, utiliser des TRNGs n’est pas une option viable, car la sauvegarde de milliers de milliards de nombres utiliserait trop de ressources matérielles. De plus, les vrais nombres aléatoires sont souvent lents à générer, comparés aux nombres pseudo aléatoires.

Une autre catégorie de générateurs de nombres aléatoires est connue sous le nom de générateurs de nombres quasi aléatoires (QRNG – Quasi Random Number Generator), qui sont conçus pour générer des séquences de nombres qui minimisent l’écart à l’uniformité de façon déterministe. Cette approche est intéressante pour le calcul intégral ou pour les problèmes de « space-filling » que l’on utilise notamment dans la réalisation de plans d’expériences très utiles en calcul à haute performance.
dispositif ou une méthode qui génère de véritables nombres aléatoires. Contrairement aux PRNGs, qui utilisent des algorithmes déterministes et un état initial pour produire des séquences de nombres qui semblent aléatoires, les TRNGs s'appuient sur des processus physiques imprévisibles ou des sources de hasard pour générer de vrais nombres aléatoires. Certaines sources de hasard couramment utilisées dans les TRNGs peuvent être le bruit électronique, la désintégration radioactive, le bruit atmosphérique ou le bruit optique. Pour faire de la science reproductible avec des TRNGs, vous devez sauvegarder chaque nombre aléatoire que vous utilisez. Lorsqu'on traite des simulations de Monte Carlo lourdes, comme en physique des hautes énergies, utiliser des TRNGs n'est pas une option viable, car la sauvegarde de millier de milliards de nombres utiliserait trop de ressources matérielles. De plus, les vrais nombres aléatoires sont souvent lents à générer, comparés aux nombres pseudo aléatoires.

Une autre catégorie de générateurs de nombres aléatoires est connue sous le nom de générateurs de nombres quasi aléatoires (QRNG – Quasi Random Number Generator), qui sont conçus pour générer des séquences de nombres qui minimisent l'écart à l'uniformité de façon déterministe. Cette approche est intéressant pour le calcul intégral ou pour les problèmes de « space-filling » que l'on utilise notamment dans la réalisation de plans d'expériences très utiles en calcul à hautes performances.

## 5.3. Optimisation

Dans le monde du calcul haute performance, l'optimisation est une notion importante. Lorsque nous parlons d'optimiser l'exécution d'un processus sur un CPU, nous pouvons penser aux options de compilation
## 5.3. Optimisation

Dans le monde du calcul haute performance, l'optimisation est une notion importante. Lorsque nous parlons d'optimiser l'exécution d'un processus sur un CPU, nous pouvons penser aux options de compilation –O2 et –O3 (pour C, C++ et Fortran), et nous pouvons également penser aux opérations Fused Multiply-Add (FMA), Advanced Vector Extension (AVX), et à l'utilisation de cartes accélératrices avec des « Tensor Cores » capables de réaliser des multiplications de petites matrices en un cycle. Le FMA est une opération arithmétique qui combine la multiplication et l'addition en une seule instruction. La nature fusionnée de cette opération signifie que la multiplication et l'addition sont effectuées à l'intérieur du processeur au niveau matériel en une étape « unique », améliorant l'efficacité computationnelle des deux opérations suivantes : « a * b + c ». AVX est une extension du jeu d'instruction de l'architecture « x86 » qui permet des opérations SIMD (Single Instruction, Multiple Data). L'architecture SIMD permet au processeur de traiter plusieurs éléments de données en parallèle avec une seule instruction vectorielle, augmentant ainsi le débit de calcul. AVX introduit des registres vectoriels plus larges (par exemple, 256 ou 512 bits), permettant à une seule instruction vectorielle d'opérer simultanément sur plusieurs éléments de données en simple ou double précision. Cela est particulièrement bénéfique dans les applications spécifiques, où la même opération doit être effectuée simultanément sur plusieurs points de données. Par exemple, avec la norme AVX-512, un registre vectoriel de 512 bits peut contenir seize nombres à virgule flottante de simple précision (32 bits) ou huit nombres à virgule flottante de double précision (64 bits). Lors de la compilation avec l'optimisation agressive –O3, toutes ces fonctionnalités d'optimisation peuvent conduire à une perte de répétabilité. Nous avons
-O2 et -O3 (pour C, C++ et Fortran), et nous pouvons également penser
aux opérations Fused Multiply-Add (FMA), Advances Vector Extension
(AVX), et à l'utilisation de cartes accélératrices avec des « Tensor Cores »
capables de réaliser des multiplications de petites matrices en un cycle. Le
FMA est une opération arithmétique qui combine la multiplication et
l'addition en une seule instruction. La nature fusionnée de cette opération
signifie que la multiplication et l'addition sont effectuées à l'intérieur du
processeur au niveau matériel en une étape « unique », améliorant
l'efficacité computationnelle des deux opérations suivantes : « a * b + c ».
AVX est une extension du jeu d'instruction de l'architecture « x86 » qui
permet des opérations SIMD (Single Instruction, Multiple Data).
L'architecture SIMD permet au processeur de traiter plusieurs éléments
de données en parallèle avec une seule instruction vectorielle, augmentant
ainsi le débit de calcul. AVX introduit des registres vectoriels plus larges
(par exemple, 256 ou 512 bits), permettant à une seule instruction
vectorielle d'opérer simultanément sur plusieurs éléments de données en
simple ou double précision. Cela est particulièrement bénéfique dans les
applications spécifiques, où la même opération doit être effectuée
simultanément sur plusieurs points de données. Par exemple, avec la
norme AVX-512, un registre vectoriel de 512 bits peut contenir cent vingt-
huit nombres à virgule flottante de simple précision (32 bits) ou soixante-
quatre nombres à virgule flottante de double précision (64 bits). Lors de
la compilation avec l'optimisation agressive -O3, toutes ces
fonctionnalités d'optimisation peuvent conduire à une perte de
répétabilité. Nous avons observé une perte de répétabilité d'une exécution
à l'autre avec un contexte identique sur des superordinateurs comme décrit
par le Prof. Thomas Ludwig, directeur du DKRZ lors de sa présentation
à l'atelier reproductibilité de la conférence Européenne de super calcul de
observé une perte de répétabilité d'une exécution à l'autre avec un contexte identique sur des superordinateurs comme décrit par le Prof. Thomas Ludwig, directeur du DKRZ lors de sa présentation à l'atelier reproductibilité de la conférence européenne de supercalcul de Francfort en 2019 (Ludwig 2019). La suppression des optimisations vectorielles « agressives » permet de retrouver un comportement normal avec une performance moindre.

Avec la généralisation des exécutions dynamiques à l'intérieur des CPU (également connues sous le nom de « out-of-order », des changements de l'ordre d'exécution des instructions), créées pour mieux alimenter la pile d'exécution des CPU, nous observons depuis plus de problèmes avec l'arithmétique à virgule flottante en HPC. De plus, comme le montrent Mytkowicz et al. (2009), même l'évaluation de la performance d'une fonctionnalité d'optimisation comme -O3 peut être non reproductible.

## 5.4. Hétérogénéité du matériel

Dans un environnement de calcul haute performance, tel que les grilles de calcul utilisées par le CERN, les ressources matérielles peuvent être très hétérogènes. Cette hétérogénéité peut avoir des implications significatives pour la reproductibilité, car elle introduit des variations en termes de performance, de précision et de comportement d'exécution entre différents systèmes (Boyer 2022). En effet, l'hétérogénéité potentielle des plateformes matérielles et des réseaux soulève des préoccupations quant à la reproductibilité. La planification dynamique nécessaire pour s'adapter aux ressources et charges changeantes rend difficile l'exécution constante des opérations dans le même ordre lors de différentes exécutions sur une plateforme à mémoire distribuée. La figure 5 illustre un scénario de charge de travail standard pour les expériences LHCb du CERN. Dans cette représentation, divers nœuds de travail sont engagés dans la récupération