Rendre le code accessible avec ces services cloud

[ad_1]

La loi de Murphy pour l’ère numérique: tout ce qui peut mal tourner va mal pendant une démonstration en direct. Pour Ben Marwick, cela s'est passé devant une salle remplie d'étudiants en archéologie du paysage à Berlin. Le sujet: la reproductibilité de calcul en utilisant Docker.

Docker est un outil logiciel qui génère des ‘conteneurs’, des environnements informatiques normalisés pouvant être partagés et réutilisés. Les conteneurs garantissent que les analyses informatiques s'exécutent toujours sur la même infrastructure sous-jacente, ce qui favorise la reproductibilité. Docker isole ainsi les chercheurs des problèmes d'installation et de mise à jour de logiciels de recherche. Cependant, il peut être difficile à utiliser.

Marwick, archéologue à l’Université de Washington à Seattle, maîtrisait bien la migration des fichiers de configuration Docker («Dockerfiles») d’un projet à l’autre, y apportant de légères modifications et les faisant fonctionner. Ses collègues allemands l'ont invité à enseigner à leurs étudiants comment faire de même. Mais comme chaque élève avait installé un ensemble légèrement différent de matériel et de logiciels, chacun d’entre eux nécessitait une configuration personnalisée. La démo "était un désastre complet", dit Marwick.

Aujourd'hui, un nombre croissant de services permet aux chercheurs d'éviter une telle confusion. En utilisant ces services (notamment Binder, Code Ocean, Colaboratory, Gigantum et Nextjournal), les chercheurs peuvent exécuter du code dans le cloud sans avoir à installer davantage de logiciels. Ils peuvent verrouiller leurs configurations logicielles, migrer ces environnements d'ordinateurs portables vers des clusters informatiques hautes performances et les partager avec des collègues. Les enseignants peuvent créer et partager du matériel de cours avec les étudiants et les revues peuvent améliorer la reproductibilité des résultats dans les articles publiés. Il n’a jamais été aussi facile de comprendre, évaluer, adopter et adapter les méthodes de calcul dont dépend la science moderne.

William Coon, chercheur en sommeil à la Harvard Medical School de Boston, dans le Massachusetts, a passé des semaines à écrire et à déboguer un algorithme, seulement pour découvrir que le code conteneurisé d’un collègue aurait permis d’économiser beaucoup de temps. «J'aurais pu me mettre à l'aise en utilisant tout le travail de débogage qu'il avait déjà fait, d'un simple clic de bouton», dit-il.

Les logiciels scientifiques nécessitent souvent l’installation, la navigation et le dépannage d’un réseau byzantin de «dépendances» informatiques, c’est-à-dire les bibliothèques de codes et les outils sur lesquels repose chaque module logiciel. Certaines doivent être compilées à partir du code source ou configurées exactement, et une installation qui devrait prendre quelques minutes peut dégénérer en une odyssée en ligne frustrante via des sites Web tels que Stack Overflow et GitHub. «L’un des aspects les plus difficiles de la reproductibilité est de configurer votre ordinateur exactement de la même manière que celle de quelqu'un d’autre. C'est ridiculement difficile », déclare Kirstie Whitaker, neuroscientifique à l'institut Alan Turing de Londres.

Évaluation plus facile

réduit cela à une seule commande. «Docker réduit réellement les frictions à ce stade du cycle de reproduction du travail de quelqu'un d'autre, dans lequel vous devez compiler le logiciel à partir de la source et le combiner avec d'autres bibliothèques externes», déclare Lorena Barba, ingénieur en mécanique et aérospatiale à la George Washington University. à Washington DC. "Cela facilite cette partie, la rendant moins sujette aux erreurs, la rendant moins onéreuse en temps de chercheur."

L’équipe de Barba travaille la plupart du temps dans des conteneurs Docker. Mais il s’agit d’un groupe de recherche expérimenté en calcul; d'autres pourraient trouver le processus intimidant. Docker est une application de type «ligne de commande» basée sur du texte, qui propose des dizaines d’options, et la création d’un fichier Docker fonctionnel peut être un exercice frustrant.

C’est là que les services basés sur le cloud entrent en jeu. Il s’agit d’un projet open source qui permet aux utilisateurs de tester des cahiers de calcul, des documents tels que les cahiers J Markt ou R Markdown, qui mélangent code, chiffres et texte. (gratuit) et (les trois derniers ayant des niveaux gratuit et payant) permettent également aux utilisateurs d'écrire du code dans le cloud et, dans certains cas, de le regrouper avec les données à traiter. Ces plates-formes permettent également aux utilisateurs de modifier le code et de l'appliquer à d'autres ensembles de données, ainsi que des fonctionnalités de contrôle de version permettant de réviser les modifications.

De tels outils permettent aux chercheurs d’évaluer plus facilement le travail de leurs collègues. «Avec Binder, vous avez supprimé cette barrière (de l’installation de logiciels)», déclare Karthik Ram, écologiste informaticien de l’Université de Californie à Berkeley. "Si je peux cliquer sur ce bouton, que je sois déposé dans un ordinateur portable où tout est installé, l'environnement est exactement comme vous le souhaitiez, alors vous m'avez rendu la vie plus facile. Allez y jeter un coup d'œil et vous faire part de vos commentaires."

L'identification des dépendances requises et leur emplacement varient en fonction de la plate-forme. Sur Code Ocean et Gigantum, il s’agit d’une opération de pointer-cliquer, alors que Binder nécessite une liste de dépendances dans un référentiel Github. Conseil de Whitaker: codifiez votre environnement informatique le plus tôt possible dans un projet et respectez-le. «Si vous essayez de le faire à la fin, alors vous faites de l’archéologie sur votre code, et c’est vraiment, vraiment difficile», dit-elle. Ram a développé un outil appelé pour les projets utilisant le langage de programmation statistique R. Holepunch décrit le processus de configuration de Binder en quatre commandes simples. (Voir des exemples de notre code en cours d'exécution sur les cinq plates-formes à l'adresse.)

Le moyen le plus simple d’essayer Binder est un site Web gratuit, bien que limité par ordinateur. Ou, pour plus de puissance et de sécurité, les chercheurs peuvent créer des ‘BinderHubs’ privés. L’Alan Turing Institute en compte deux, dont l’un appelé Hub23 (référence à Hut 23 dans l’installation de lecture des codes de Seconde Guerre mondiale à Bletchley Park, au Royaume-Uni), qui fournit des ressources de calcul plus importantes et la possibilité de travailler avec des ensembles de données qui ne peuvent pas être publiquement accessibles. partagé, dit Whitaker. La communauté, qui promeut des géosciences ouvertes, reproductibles et évolutives, a créé un BinderHub dédié afin que les chercheurs puissent explorer des ensembles de données satellitaires et de modélisation du climat pouvant atteindre plusieurs dizaines de téraoctets, déclare Joe Hamman, hydroclimatologue en informatique au Centre national de recherche atmosphérique. à Boulder, Colorado. (L’équipe de Whitaker a publié un tutoriel sur la construction d’un BinderHub à l'adresse.)

Langues et nuages

Le Colaboratory de Google est essentiellement un croisement entre un bloc-notes Jupyter et Google Docs, ce qui signifie que les utilisateurs peuvent partager, commenter et modifier conjointement des blocs-notes, qui sont stockés sur Google Drive. Les utilisateurs exécutent leur code dans le nuage Google (seul le langage Python est officiellement pris en charge) sur une unité centrale de traitement standard (CPU), une unité de traitement graphique (GPU) ou une unité de traitement du tenseur (TPU), une puce spécialisée optimisée pour le TensorFlow de Google. logiciel d'apprentissage en profondeur. «Vous pouvez ouvrir votre carnet de notes ou celui de quelqu'un d'autre dans GitHub, commencer à vous amuser dessus, puis enregistrer votre copie sur Google Drive et y travailler plus tard», explique Jake VanderPlas, membre de l'équipe Colaboratory de Google à Seattle.

Nextjournal prend en charge les cahiers écrits en Python, R, Julia, Bash et Clojure, avec davantage de langues en développement. Selon Martin Kavalar, directeur général de Nextjournal, basé à Berlin, la société a enregistré près de 3 000 utilisateurs depuis le lancement de la plate-forme le 8 mai.

Gigantum, dont la version bêta a été lancée l’année dernière, comprend un client basé sur un navigateur que les utilisateurs peuvent installer sur leur propre système ou à distance, pour le codage en nuage et l’exécution dans les environnements de codage Jupyter et RStudio. Coon, qui utilise Gigantum pour exécuter des algorithmes d'apprentissage automatique dans le nuage Amazon, explique que le service facilite la tâche des collaborateurs. «Ils peuvent lire mes cahiers Gigantum et utiliser cette infrastructure de calcul en nuage pour faire de la formation et de l'apprentissage», explique-t-il.

Ensuite, il y a Code Ocean, qui prend en charge les cahiers et les scripts conventionnels en Python, R, Julia, Matlab et C, entre autres langages. Plusieurs revues utilisent maintenant Code Ocean pour la relecture par des pairs et la promotion de la reproductibilité informatique, notamment des titres de Taylor & Francis, De Gruyter et SPIE. En 2018, Nature Biotechnologie, Nature Machine Intelligence et Méthodes Nature lancé un programme pilote d'utilisation de Code Ocean pour une évaluation par les pairs; La nature, Protocoles Nature et BMC Bioinformatics a par la suite rejoint le procès. Selon Erika Pastrana, directrice éditoriale des revues de science appliquée et de chimie de Nature Research, plus de 95 articles ont été publiés, dont plus de 20 ont été publiés.

Felicity Allen, informaticienne au Wellcome Sanger Institute de Hinxton, au Royaume-Uni, a co-écrit une étude dans le cadre de cet essai, qui a analysé les types de mutation pouvant découler de l'édition de gènes basée sur CRISPR (). Elle estime qu'il a fallu une semaine pour que l'environnement Code Ocean fonctionne. «Les critiques semblaient vraiment aimer», dit Allen. "Et je pense que c’est vraiment bien que cela ait été un exemple: quelqu'un pourrait simplement appuyer sur le bouton" continuez "et cela fonctionnerait."

Bien que certains s'inquiètent de la viabilité à long terme des services commerciaux de calcul en conteneur, les chercheurs ont des options. Simon Adar, directeur général de Code Ocean, note que les «capsules de calcul» de Code Ocean sont archivées par le projet CLOCKSS, qui conserve des copies numériques de la littérature scientifique en ligne. De plus, Code Ocean, Gigantum et Nextjournal permettent d’exporter Dockerfiles pour les utiliser sur d’autres plateformes. Cela signifie que les chercheurs peuvent être sûrs que leur code restera utilisable, quelle que soit la plate-forme de leur choix.

Benjamin Haibe-Kains, chercheur en pharmacogénomique au Princess Margaret Cancer Center à Toronto, au Canada, a adopté Code Ocean pour répondre rapidement aux critiques d'une analyse qu'il a publiée dans La nature () Pour lui, Code Ocean fournit un moyen de s’assurer que son code peut être utilisé et évalué par son équipe, les pairs examinateurs et la communauté scientifique au sens large. "Ce n'est pas tellement qu'une analyse doit être correcte ou fausse", dit-il. «Rien n’est vraiment totalement correct dans ce monde. Cependant, si vous êtes très transparent à ce sujet, vous pouvez toujours communiquer efficacement face aux critiques. Tu n'as rien à cacher; tout est là. "

[ad_2]