ParadisEO

Fiche logiciel validé
  • Création ou MAJ importante : 27/02/12
  • Correction mineure : 05/08/13
Mots-clés
Pour aller plus loin
  • Fiches logiciel PLUME connexes : Cmake

ParadisEO : plateforme de développement de métaheuristiques hybrides parallèles sur grilles de calcul

Description
Fonctionnalités générales

ParadisEO est une plateforme logicielle libre, développée en langage C++, orientée-objet, portable (Unix, Windows, MacOS). Elle permet un développement flexible et réutilisable de métaheuristiques (méthodes d'optimisation approchées) et leur déploiement sur des grilles de calcul. Elle est basée sur la librairie EO (Evolving Objects), une plateforme libre, orientée-objet à base de templates et dédiée au calcul évolutionnaire.

ParadisEO se compose de quatre modules. Chaque module fournit des fonctionnalités spécifiques :

  • ParadisEO-EO fournit les classes permettant le développement de métaheuristiques à base de population de solutions telles que les algorithmes évolutionnaires et les algorithmes d'optimisation par essaim de particules (particle swarm optimization);
  • ParadisEO-MO, depuis la version 1.3, fournit en plus les classes pour le développement de méthodes de recherche locale (recuit simulé, recherche taboo, recherche locale itérative...) des outils pour l'analyse de paysage ;
  • ParadisEO-MOEO est le module pour la résolution de problèmes d'optimisation combinatoires multi-objectifs ;
  • ParadisEO-PEO permet de développer des métaheuristiques parallèles et distribuées. Ce module fournit des classes permettant, entre autres, l'évaluation parallèle des individus, la transformation (croisement, mutation) parallèle des individus et l'évaluation parallèle d'un individu dans le cas où la fonction d'évaluation est une fonction complexe, des recherches locales parallèles.

ParadisEO-GPU est quant à elle une version de ParadisEO qui permet l'exécution sur un processeur graphique (GPU: Graphics Processing Unit).

Autres fonctionnalités

ParadisEO permet également la coopération et l'hybridation de différentes métaheuristiques. Différents schémas d'hybridation entre métaheuristiques sont possibles. Il est possible, à titre d'exemple, d'hybrider un algorithme évolutionaire et une méthode de recherche locale ou de remplacer un opérateur génétique par une méthode de recherche locale.

Interopérabilité

L'architecture logicielle de ParadisEO est conçue en utilisant des design patterns permettant une grande interopérabilité avec d'autres logiciels et bibliothèques. Cela permet également une forte réutilisation du code à l'intérieur même de ParadisEO. De plus, une assistance par des ingénieurs de l'équipe de développement est proposée.

Contexte d'utilisation dans mon laboratoire/service

Ce logiciel est utilisé comme outil de recherche en optimisation, mais aussi sur des problématiques de HPC.

De grandes entreprises comme France Telecom l'utilisent dans un cadre de R&D.

Le pôle Informatique Scientifique de l'IRD l'a utilisé dans le
cadre d'un paramétrage d'un modèle d'océanographie. L'expérience a eu lieu en mode "grid" sur trois sites distants sur 200 cœurs de calcul.

Environnement du logiciel
Plates-formes

Unix-like, Windows et MacOS X.

Logiciels connexes
Autres logiciels aux fonctionnalités équivalentes
  • Open Metaheuristic (cette bibliothèque ne possède pas la fonctionnalité calcul parallèle)
Environnement de développement
Type de structure associée au développement

Ce logiciel a été développé par l'équipe DOLPHIN au sein de l'INRIA Lille - Grand Nord.

Eléments de pérennité

Ce logiciel est développé par deux ingénieurs à plein temps et par de nombreux thésards depuis neuf ans.

Références d'utilisateurs institutionnels
Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
  • Liste d'aide : paradiseo-help [at] lists [dot] gforge [dot] inria [dot] fr
  • Communauté
Documentation utilisateur
Contributions

Un système de contribution a été mis en place.

Commentaires

Nouvelle version de ParadisEO

Une nouvelle version, ParadisEO 2.0, est sortie le 30/08/2012.

Cette version corrige des bugs, met en place un nouveau système d'installation, incorpore un nouveau module de mémoire partagée, utilise la norme C++11...

Responsable thématique précédent

Cette fiche a d'abord été suivie par le responsable thématique Loïc Gouarin. Geneviève Romier l'a reprise en mai 2011.