EDNA

Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 27/07/10
  • Correction mineure : 05/10/10
Mots-clés

EDNA : environnement pour réaliser des programmes d'analyses de données en ligne

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Site web
  • Système : UNIX-like, Windows, MacOS X
  • Version actuelle : 1.0 (prototype MXv1) - revision SVN 1794
  • Licence(s) : GPL - Le noyau de EDNA est LGPL, les applications et autres plugins applicatifs sont GPL.
  • Etat : diffusé, stable, utilisé en interne, en développement
  • Support : maintenu, développement en cours
  • Concepteur(s) : Executive Comitee Chair : Andrew Leslie (MRC-LMB) ; Project Manager: Olof Svensson (ESRF) ; Project Coordinator : Alun Ashton (Diamond). Au total plus de 40 développeurs dans près de 15 instituts de par le monde.
  • Contact concepteur(s) : edna@esrf.fr
  • Laboratoire(s), service(s)... : EMBL, ESRF, SOLEIL Synchrotron, DLS, MRC-LMB, CCP4, Bessy (HZB), Max Lab. NSLS, SLS-PSI, Univ Sidney, Univ York, Global Phasing

 

Fonctionnalités générales du logiciel

EDNA est un framework, un environnement permettant de réaliser des logiciels d'analyse de données en ligne, hautement parallèlisé et met sous contrôle des logiciels scientifiques en les enchaînant à la manière d'un pipe Unix, mais avec un contrôle individualisé de chacun des programmes sous-jacent. En enchaînant les différents programmes ont peut générer des chemins de traitement (workflow) qui sont réalisés en parallèle (multi-thread asynchrone) et obtenir des temps de traitement très courts, les résultats étant obtenus au cours de l'expérience et non pas en post-traitement.

EDNA est écrit en Python pur pour le noyau (kernel) mais certains plugins nécessitent des bibliothèques annexes comme numpy, scipy, PIL, h5py, ... et exploite très bien les capacités multi-core des machines modernes.

EDNA est basé sur 4 piliers :

  • Modularité : chaque plugin est soit un wrapper pour un executable, soit un control plugin pour un ou plusieurs exec plugin(s). Le coté multithread est géré au niveau du noyau, le programmeur de plugin n'a pas à s'en préoccuper en règle génerale.
  • Gestion de projet (visioconf, workshops, ...) : EDNA dispose d'un comité de pilotage pour coordonner ses développements.
  • Modèles de données (datamodels) décrits en UML --> exporté en XSD --> data-binding python pour assurer une sérialisation des données et pouvoir debugger en cas de problème.
  • Environnement de test: EDNA propose un environnement de test poussé, cela permet un déploiement plus rapide et plus sur et assure la non régression de la globalitê du projet.

Les développeurs de EDNA (ESRF, Diamond, ...) organisent régulièrement des "code-camp" de 1 ou 2 jours pour prendre en main la programmation de nouveaux plugins et enrichir la centaine de plugins déjà écrits et documentés.

Contexte d’utilisation du logiciel

Initialement EDNA a été développé pour la communauté de cristallographie des protéines (automatisation de la réduction des données) mais il est aujourd'hui utilisé pour d'autres domaines comme l'imagerie X (ESRF), l'archivage des données (Diamond, UK), les affinements de structures cristallines, ...

L'idée de EDNA est d'offrir un parallélisme de fils (thread) pour des tâches qui durent entre 0.1s et 10s; mais avec beaucoup de tâches, là ou les gestionnaires de queue/batch type PBS sont assez peu performants (initialisation de chaque processus). Il est néanmoins possible d'utiliser EDNA avec un gestionnaire de batch type SGE (Diamond, UK), Condor (à l'ESRF) ou PBS...

Publications liées au logiciel

EDNA: a framework for plugin-based applications applied to X-ray experiment online data analysis
M.-F. Incardona, G. P. Bourenkov, K. Levik, R. A. Pieritz, A. N. Popov and O. Svensson
J. Synchrotron Rad. (2009). 16, 872-879 [ doi:10.1107/S0909049509036681 ]

Abstract: EDNA is a framework for developing plugin-based applications especially for online data analysis in the X-ray experiments field. This article describes the features provided by the EDNA framework to ease the development of extensible scientific applications. This framework includes a plugins class hierarchy, configuration and application facilities, a mechanism to generate data classes and a testing framework. These utilities allow rapid development and integration in which robustness and quality play a fundamental role. A first prototype, designed for macromolecular crystallography experiments and tested at several synchrotrons, is presented.

Commentaires

Du neuf sur le front de la modélisation ...

L'outil de modélisation dans EDNA a été remplacé par TopCased ce qui permet d'avoir un environnement de développement totalement libre.
Pour convertir les diagrammes UML en XSD, nous mettons à disposition UML2XSD, disponible sur l'update-site de EDNA:
http://www.edna-site.org/eclipse/updates

Logiciel validé

Ce logiciel est en fait un logiciel validé car utilisé dans plusieurs sites, mais la recherche d'utilisateurs français, qui peuvent contribuer à la rédaction d'une fiche PLUME en français est difficile. Manifestez vous auprès de plume si vous utilisez ce framework.