Intégration Continue : l’exemple d’Abinit

Intervenant(s) : Jean-Michel Beuken

  • Langue : Français
  • Type d'événement : Conférence
  • Date : Jeudi 11 juillet 2013
  • Horaire : 10h20
  • Durée : 20 minutes
  • Lieu : K.3.401

Vidéo : http://video.rmll.info/videos/integration-continue-lexemple-dabinit/

Public cible : Grand publicProfessionnels

Résumé

Afin de suivre les développements individuels conformes aux objectifs globaux du projet, toutes les contributions doivent être réexaminées périodiquement parce que chaque nouveau développement a une forte probabilité de casser le comportement correct d’une autre fonction. Cette préoccupation a été abordée dans Abinit [1] grâce à la mise en place d’une suite de tests et d’une "Test Farm" ( série d’ordinateurs ) [2].

Tous les jours, cette dernière compile les dernières contributions proposées par les développeurs, mais aussi exécute la suite de tests d’Abinit et valide les résultats. Grâce à cet outil, la contribution de chaque développeur est validée avant qu’elle puisse être prise en compte lors du merge dans la version principale de Abinit, qui a lieu chaque semaine.

La Test Farm d’Abinit est constituée de deux parties distinctes : une série de plates-formes informatiques avec divers environnements de développement et BuildBot [3], un outil d’intégration continue qui automatise le cycle de compilation/test nécessaire pour valider les modifications apportées au code du projet logiciel. En reconstruisant et testant automatiquement la source à chaque fois que quelque chose a changé, les problèmes de compilation sont identifiés très tôt, avant que les autres développeurs ne soient gênés. En exécutant les versions sur différentes plateformes, les développeurs auront rapidement un feedback sur des problèmes de portabilité.

Une fois les tests terminés, les statuts de résultats sont envoyés par BuildBot aux développeurs via mail et/ou sur une page web. Ils sont également traités par des scripts afin d’affichés les résultats globaux sur le site d’Abinit. Les résultats sont triés par machines, par révisions et par développeurs. Des codes de couleurs permettent d’identifier clairement les étapes qui posent problème.

Depuis son démarrage en 2009, la Test Farm d’Abinit a grandi et évolué. Aujourd’hui, vingt et une plates-formes (Intel, AMD, PowerPC, GPU) avec une diversité de systèmes d’exploitation propriétaires et open source (différents linux, MacOS, Windows ), les compilateurs (gcc, xlf, ifort, Open64, pathscale,...), des bibliothèques de traitement (OpenMPI, MPICH2, POE, OpenMP) en parallèle et les bibliothèques numériques (netlib, Atlas, GotoBlas2, mkl) sont fournis.

[1] X. Gonze , J-M. Beuken, & al, First-principles computation of material properties : the ABINIT software project, Computational Materials Science, vol. 25, issue 3, pp. 478-492, (2002). [2] Y. Pouillon, J-M Beuken, T. Deutsch, M.Torrent and X. Gonze, Organizing Software Growth and Distributed Development : The Case of Abinit, Computing in Science and Engineering, vol. 13, no. 1, pp. 62-69, (2011). [3] http://trac.buildbot.net/

Biographie

Ingénieur Civil Physicien, UCL 1983 Docteur en Sciences Appliquées, UCL 1991 Informaticien, UCL 1997 Informaticien Expert, UCL 2011 Responsable Opérationnel du CISM/UCL ( Institut de Calcul intensif et deStockage de Masse ), 1997-2008 Chef de projet "Sauvegarde des données des postes individuels", SGSI/UCL 2005-2010

Computer Scientist , 2008-2013
- Aide au développement du logiciel Abinit ( GPL ) : - gestion des forges : Abinit et BigDFT - 30 développeurs dans le monde, - plus de 1000 inscrit sur le forum.abinit.org
- gestion de la test farm : 14 serveurs ( 4 projets : Abinit, BigDFT, Octopus, DP/EXC )
- gestion des sites Web : abinit.org et etsf.eu
- gestion des postes des chercheurs ( achats, configurations, ...)

Documents joints

Transparents
Transparents (PDF - 3.9 Mo)