|
|
# Exemples de scénario en Reproductibilité
|
|
|
|
|
|
Ici sont donnés des pistes et des exemples de solution pour la reproductibilité d'expériences.
|
|
|
|
|
|
## Le code
|
|
|
|
|
|
Versionner le code source permet de rejouer une version spécifique du programme. (cf. tags)
|
|
|
|
|
|
> Ne pas oublier de fixer la seed pour toute utilisation d'algo de random.
|
|
|
|
|
|
## L'environnement
|
|
|
|
|
|
Le code a besoin d'être intéprété pour un logiciel et/ou il a besoin d'être compilé.
|
|
|
Contrainte, il faut garder la version de l'interpréteur, du compileur, des libraries, des outils utilisés lors de la première expérience.
|
|
|
Pour cela on va essaye de garder un maximum d'information de cet environnement.
|
|
|
|
|
|
Une solution est de créer une machine virtuel sur laquel tout est figé et qui servira à faire tourner notre code à reproduire. Problème les machines virtuelles ça peut vite prendre beaucoup d'espace disque.
|
|
|
Une autre solution c'est de garder dans un fichier de configuration/instruction comment construire l'environnement. Par exemple le plus simple sous linux c'est d'utiliser les containers Docker, mais on peut utiliser aussi Vagrant sous Virtual Box ou VMWare. Pour aller encore plus loin on peut regarder Ansible, Puppet, Chef... Il en existe plein.
|
|
|
|
|
|
## Sous R
|
|
|
|
|
|
Sous R il existe deux packages qui permettent de garder les versions utilisées de R et des packages.
|
|
|
* checkpoint : prend un snapshot du dépot cran (utilise MCRAN)
|
|
|
* packrat : prend un snapshot local des libraries R
|
|
|
|
|
|
|