FLASH INFORMATIQUE FI



CIEL - serveur de publication pour les codes de recherches scientifiques




Violaine LOUVET


Le groupe calcul en collaboration avec le CCSD (Centre pour la Communication Scientifique Directe) est en train de mettre en place un outil d’archivage des codes nommé CIEL (Code Informatique En Ligne).
L’origine de ce site de dépôt de codes de calcul scientifique résulte de deux initiatives indépendantes et presque simultanées, la première du laboratoire de Mathématique d’Orsay, la seconde du groupe calcul du CNRS (Centre National de la Recherche Scientifique en France). Les principales motivations de ces propositions étant communes, les deux initiatives ont fusionné en une seule qui a abouti à la création de ce site.

Motivations et finalités

Les principales motivations de ce projet sont :

  • Promouvoir et valoriser les codes de calcul c’est-à-dire mieux faire connaître les codes de recherche développés dans les laboratoires de recherche et permettre une reconnaissance aux développeurs de ces codes de la même façon qu’un article dans une revue avec comité de lecture.
  • Pérenniser les codes de calcul pour parer au problème de la perte de savoir-faire due au départ d’un thésard ou d’un chercheur. C’est également l’un des moyens pour faire connaître l’existence de ce patrimoine scientifique dans notre communauté, mais aussi dans le milieu industriel.
  • Assurer la reproductibilité des résultats de publication pour permettre aux personnes intéressées par les articles de disposer d’un outil mettant en œuvre les méthodes proposées et permettant de reproduire les résultats décrits dans l’article.
    Ainsi, la publication d’un code qui a servi à produire les illustrations d’un papier de sciences appliquées accepté dans un journal classique va d’une part permettre de reproduire les résultats publiés, mais aussi de l’utiliser pour d’autres applications comme n’importe quel résultat théorique issu d’une publication. Par ailleurs, les personnes qui développent des codes de calcul en dehors d’un contexte de publication peuvent trouver ici un outil pour faire connaître leurs travaux et valoriser ceux-ci.
    Cet outil fonctionne donc comme un système de prépublication, adapté aux logiciels.

Publication de codes

Les éléments nécessaires à la publication d’un code sur CIEL sont :

Description du problème résolu et objectif du code

Un code de calcul est toujours réalisé dans un certain but. Ce peut être la mise au point de nouvelles méthodes de résolution ou la mise en évidence de certains phénomènes. Il s’agit donc de décrire le problème résolu, les méthodes de résolution et la finalité du projet.

Manuel d’utilisation

C’est une partie essentielle. Il doit être clair et concis. Il doit faire état de l’ensemble des éléments nécessaires à l’usage du programme :

  • description des données (physique et format),
  • description des options du code (choix algorithmiques).
    Il peut aussi décrire les astuces de programmation utilisées indispensables à la compréhension du code et à son fonctionnement.

Sources du code

Le langage de programmation est indifférent pourvu

  • qu’il soit standardisé,
  • qu’il soit suffisamment répandu, que les compilateurs soient accessibles ou que les logiciels soient disponibles,
  • que la norme du langage soit respectée, donc que les extensions constructeurs soient évitées.

Jeux de tests

Il est indispensable que quelques jeux de tests soient mis à la disposition des futurs utilisateurs et soient décrits dans le guide d’utilisation. Les résultats doivent également être accessibles pour permettre la vérification de l’installation du code.

Références vers d’autres publications

Pour les codes dont les résultats ont fait l’objet d’une publication, les références doivent être indiquées sur ce site. De même, il est très souhaitable que, réciproquement, ce site soit référencé dans la publication des résultats. L’ensemble est alors cohérent et les travaux théoriques et numériques pleinement reproductibles.

JPEG - 3 ko
Exemple d’un dépôt dans CIEL

Licence

Il est possible, et même conseillé, d’associer une licence au code. Certains codes ont leur propre licence, mais cet aspect n’a en général pas été pris en compte pour la plupart des logiciels développés dans les laboratoires de recherche. Le choix de la licence sous laquelle le logiciel est publié comporte donc trois possibilités :

  • le logiciel n’a pas de licence propre et le développeur ne souhaite pas associer de licence à son code,
  • le logiciel a une licence propre et le texte de cette licence est déposé en même temps que le code,
  • le développeur peut choisir d’utiliser la licence CeCILL qui est une licence française de logiciel libre, reprenant les principes de la GNU GPL et élaborée conjointement par le CEA, le CNRS et l’INRIA.

Aspects techniques de l’outil CIEL

Le serveur CIEL est une instance de HAL (Hyper Article en Ligne), qui permet aux auteurs de pré-publications de déposer sur la base du CCSD des manuscrits d’articles scientifiques dans toutes les disciplines.
D’un point de vue technique, HAL utilise PHP et MySQL.
Les entrées dans le serveur sont définies par un certain nombre de métadonnées, c’est-à-dire des informations structurées sur le document. La présence des métadonnées structurées permet des recherches fines, comme des extractions automatiques des codes au niveau d’un laboratoire, d’une unité ou d’une université, avec des présentations personnalisées.
Cet aspect est très intéressant pour valoriser l’activité de développement de code au sein d’une structure de recherche.
Chaque dépôt commence par le renseignement de ces métadonnées, suivi du téléchargement des fichiers source du code sur le serveur du CCSD. La clé MD5 de chaque fichier chargé sur le serveur est calculée puis affichée pour permettre la vérification de l’intégrité du fichier.
CIEL n’est pas un outil de gestion de version. Ainsi, à chaque modification d’un code, il est nécessaire d’effectuer un nouveau dépôt. Par exemple, lorsqu’un code a servi à la publication d’un article scientifique, puis qu’il a été modifié pour une nouvelle publication, ces deux instances doivent faire l’objet de deux dépôts distincts.
Chaque dépôt passe par une étape de validation réalisée par une équipe de modérateurs. Le label apposé à un dépôt est en rapport avec la conformité et la vérification fonctionnelle du programme déposé. Il peut être de quatre niveaux différents :

  • simple dépôt, c’est l’état initial. Aucune vérification ni analyse du contenu n’a été faite.
  • conforme. Il a été seulement vérifié que le dépôt est conforme aux spécifications du site.
  • compile. Il a été vérifié que la procédure d’installation est claire et que le code se compile et s’exécute.
  • testé. La conformité des sorties a été vérifiée par rapport aux éléments fournis (jeux de tests et leurs sorties).

Plate-forme de validation

La vérification fonctionnelle des dépôts est réalisée sur une machine dont les caractéristiques techniques sont toujours accessibles e. Chaque modification de configuration donne lieu à l’archivage de la configuration précédente et à la mise à jour des caractéristiques techniques. Ainsi, si un dépôt a été validé à une date donnée, il est facile de savoir précisément avec quelles versions de compilateurs et de librairies ce test a fonctionné.
Une autre plate-forme de validation est en train de se mettre en place. Il s’agit de permettre aux utilisateurs intéressés d’accéder aux codes et de pouvoir les exécuter sans être obligés de les télécharger et de les installer sur leur propre machine. Cette fonctionnalité sera basée sur l’outil de Grid computing DIET qui donnera accès aux codes via un portail Web.
Les utilisateurs pourront alors exécuter le code, soit avec les données qui ont été jointes, soit avec leurs propres données. Le calcul sera déporté via DIET sur leur machine qui deviendra temporairement cliente de l’environnement distribué pour le temps du calcul, sans démarche technique de leur part.
Pour les développeurs réticents à mettre en téléchargement libre les sources de leurs codes, un nouveau service devrait aussi voir le jour, basé sur la plate-forme de test de DIET, permettant de mettre à disposition des utilisateurs la possibilité d’exécuter le code avec leurs propres données. Ensuite, si celui-ci répond à leurs attentes, ils pourront contacter directement l’auteur qui prendra la décision de donner ou non ses sources.

Conclusion

Le site du projet CIEL est opérationnel depuis quelques semaines et le lancement à grande échelle de ce service aura lieu en septembre. Ce projet ne peut vivre qu’avec la participation des personnes du monde du calcul intéressées par le concept.
Nous invitons donc toutes les personnes se sentant concernées par la prépublication de codes de calcul à publier sur le site et nous donner un retour d’utilisation de cet outil.



Cherchez ...

- dans tous les Flash informatique
(entre 1986 et 2001: seulement sur les titres et auteurs)
- par mot-clé

Avertissement

Cette page est un article d'une publication de l'EPFL.
Le contenu et certains liens ne sont peut-être plus d'actualité.

Responsabilité

Les articles n'engagent que leurs auteurs, sauf ceux qui concernent de façon évidente des prestations officielles (sous la responsabilité du DIT ou d'autres entités). Toute reproduction, même partielle, n'est autorisée qu'avec l'accord de la rédaction et des auteurs.


Archives sur clé USB

Le Flash informatique ne paraîtra plus. Le dernier numéro est daté de décembre 2013.

Taguage des articles

Depuis 2010, pour aider le lecteur, les articles sont taggués:
  •   tout public
    que vous soyiez utilisateur occasionnel du PC familial, ou bien simplement propriétaire d'un iPhone, lisez l'article marqué tout public, vous y apprendrez plein de choses qui vous permettront de mieux appréhender ces technologies qui envahissent votre quotidien
  •   public averti
    l'article parle de concepts techniques, mais à la portée de toute personne intéressée par les dessous des nouvelles technologies
  •   expert
    le sujet abordé n'intéresse que peu de lecteurs, mais ceux-là seront ravis d'approfondir un thème, d'en savoir plus sur un nouveau langage.