Guix, un logiciel libre pour la reproductibilité des sciences en HPC

Date:
Mis à jour le 19/10/2020
Guix est un logiciel libre, développé sous les auspices du projet GNU* par une communauté enthousiaste d’organisations grandissantes : aujourd’hui entre 40 et 50 personnes y contribuent chaque mois. Il permet de reproduire des environnements logiciels. Récemment, les centres de recherche Inria Bordeaux – Sud-Ouest, Max Delbrück Center for Molecular Medicine (Berlin, Allemagne) et Utrecht Bioinformatics Center (Pays-Bas) ont décidé de collaborer autour de ce logiciel. Le point commun de ces trois établissements ? Tous sont ou ont des utilisateurs de logiciel de calcul haute performance (HPC), et dans ces structures, et bien d’autres, se pose la question de la reproductibilité des expériences … Guix , dans sa version améliorée par les trois partenaires, semble être une des réponses !

*https://gnu.org
logo logiciel Guix

La reproductibilité des expériences est un sujet qui anime la communauté des scientifiques. Dans le domaine des sciences du numérique, de plus en plus d’expériences reposent sur des ensembles de logiciels complexes. La capacité de reproduire une expérience dépend donc d’abord de la capacité à reproduire cet environnement logiciel. Dans ce contexte la National science fondation (NSF) aux États-Unis encourage désormais à s’assurer de la reproductibilité des expériences pratiquées dans la communauté du HPC, des revues comme Nature insistent également sur l’importance de partager les codes sources et soutiennent cet élan en faveur de la reproductibilité. Certains colloques en HPC comme SuperComputing ont maintenant des directives à ce sujet. Et enfin, le dernier plan stratégique d’Inria consacre un chapitre entier à cette question.

Parallèlement à Guix, deux types d’outils existaient : les gestionnaires de paquets "classiques" et les "conteneurs".

  • Les gestionnaires de paquets permettent de transmettre à la personne qui souhaite reproduire une expérience la description des éléments à assembler (application, bibliothèque, compilateurs …) et les codes sources des logiciels utilisés lorsqu’ils sont libres. Ces gestionnaires sont bien connus dans le monde GNU/Linux mais sont souvent peu flexibles et réservés aux administrateurs système de la machine. Certaines équipes de recherche ont développé des gestionnaires de paquets s’installant se superposant à celui du système, tels que EasyBuild et Spack , et fournissant ainsi davantage de flexibilité aux utilisateurs. Mais ces outils ne peuvent cependant pas reproduire à l’identique un environnement logiciel puisqu’ils dépendent eux-mêmes des logiciels déjà présents sur le système.
  • Les conteneurs, comme Docker et Singularity, eux, sont plus complets puisqu’ils sont également porteurs non seulement de l’application servant à l’expérience, mais également de l’ensemble des logiciels dont elle dépend, y compris une partie du système d’exploitation. Voyez cela comme la livraison d’un bel ordinateur déjà tout paramétré auquel vous n’avez plus à toucher ! La reproductibilité est totale, par contre les choses se complexifient si vous souhaitez faire une petite modification de l’expérience pour tester une autre hypothèse… ce qui est fréquent dans le monde de la recherche !

Guix propose donc une solution alternative aux gestionnaires de paquets et aux conteneurs. Il permet d’assurer la reproductibilité d’un environnement logiciel, sans dépendre du gestionnaire de paquets du système. Aujourd’hui le centre de recherche Inria Bordeaux – Sud-Ouest, le Max Delbrück Institute (Berlin, Allemagne) et le University Medical Center d’Utrecht (Pays-Bas) cherchent à optimiser ce logiciel pour le HPC. Cela passe par l’ajout de paquets pour les logiciels HPC développés et utilisés dans chacun des trois instituts, mais aussi et surtout par l’ajout de fonctionnalités facilitant l’utilisation sur grappe de calcul et la mise en place de workflows reproductibles

Ricardo Wurmus, administrateur système de la Scientific Bioinformatics Platform du Max Delbrück Institute, utilise Guix« Avant Guix, l’installation de logiciels scientifiques était nécessairement ad hoc. Les équipes [de recherche] compilaient leurs logiciels et les liaient statiquement, en espérant que ça ne change jamais (parce que la gestion des environnements logiciels était pratiquement impossible). Dorénavant on peut non seulement gérer un environnement par équipe de façon fiable, mais on peut aussi avoir des environnements à tous les niveaux : équipe de recherche, projet, usager, workflow, etc.»

Au centre de recherche Inria Bordeaux – Sud-Ouest, c’est Ludovic Courtès, ingénieur dans le service expérimentation et développement qui est en charge de l’optimisation de ce logiciel pour le HPC. Soutenu par l’institut avec une action de développement technologique (ADT), ses objectifs sont, à terme que ce logiciel puisse répondre aux besoins des équipes de recherche du centre en HPC et puisse être utilisé sur des plates-formes de calculs (clusters) comme celle hébergée et utilisée dans le centre de Bordeaux : PlaFRIM.

Le projet est prévu pour deux ans. D’ici-là, ses initiateurs espèrent avoir répondu aux besoins de leurs instituts en matière de déploiement reproductible de logiciels. Au-delà, l’ambition est de convaincre d’autres acteurs en HPC des avancées que représente cette approche.

Rendez vous sur le site web de Guix - HPC pour plus d’informations !