• # Reproductibilité et résilience

    Posté par (site web personnel) . En réponse à la dépêche Elpe, un compromis entre NixOS et Ubuntu. Évalué à 4.

    Pour avoir une forme de reproductibilité assez simple à mettre en œuvre là ou il y en a besoin, il y a les container, par exemple AppTainer https://apptainer.org/.

    Il n'y a pas moyen de garantir la reproductibilité dans la plupart des cas ! Il suffit de changer de CPU (ou de GPU) et plus rien n'est garanti !

    Ce qui est important, c'est soit le résultat, soit une faible dérive avec le résultat précédent. Dans de nombreux cas, une faible dérive suffit. En plus, cela a un avantage de plus travailler sur la résilience du code aux modifications que sur le dernier bit. En science, un résultat doit être reproductible par d'autres équipes pour valider un résultat, mais cela ne signifie nullement relancer le même code dans les mêmes conditions. 1 + 1 = 3 est faux, mais reproductible par un bogue de codage. Le valider n'est pas de la science...

    La stabilité des API, la correction des bogues est souvent un sujet plus important que la reproductibilité bit à bit...

    Cela dis, le projet « Reproductible Build » qui permet de garantir que le code compilé est bien issu de ces sources là est carrément important. C'est le même type de garantie qu'un hash certifiant qu'un téléchargement s'est passé sans modification lors du transfert. C'est une signature numérique.

    Bref, la reproductibilité, c'est bien à bon escient. Parfois, cela se transforme un peu trop en religion...