Software and Platforms
Bilateral Contracts and Grants with Industry
Software and Platforms
Bilateral Contracts and Grants with Industry

Section: Software and Platforms


Participants : Clive Ferret-Canape, Laetitia Jourdan, Arnaud Liefooghe, Nouredine Melab, Alexandre Quemy, El-Ghazali Talbi [correspondent] , Sébastien Verel.

ParadisEO (PARallel and DIStributed Evolving Objects) is a C++ white-box object-oriented framework dedicated to the flexible design of metaheuristics. See web site http://paradiseo.gforge.inria.fr . Based on EO, a template-based ANSI-C++ compliant evolutionary computation library, it is composed of five modules:

  • Paradiseo-EO provides tools for the development of population-based metaheuristic (evolutionary and genetic algorithm, genetic programming, particle swarm optimization, etc.)

  • Paradiseo-MO provides tools for the development of single solution-based metaheuristics (hill- climbing, tabu search, simulated annealing, iterative local search, variable neighborhood search, incremental evaluation, partial neighborhood, etc.)

  • Paradiseo-MOEO provides tools for the design of multi-objective metaheuristics (MO fitness assignment, MO diversity preservation, elitism, performance indicators, easy-to-use state-of-the-art algorithms, etc)

  • Paradiseo-PEO provides tools for the design of parallel and distributed metaheuristics (parallel evaluation, parallel evaluation function, island model)

  • Paradiseo-SMP provides tools for the design of shared memory parallel metaheuristics (parallel evaluation, island model)

Furthermore, Paradiseo also introduces tools for the design of distributed, hybrid and cooperative models:

  • High level hybrid metaheuristics: coevolutionary and relay models.

  • Low level hybrid metaheuristics: coevolutionary and relay models.

The ParadisEO framework has been especially designed to best suit to the following objectives:

  • Maximum design and code reuse: ParadisEO is based on a clear conceptual separation of the solution methods from the problems they are intended to solve. This separation confers to the user a maximum code and design reuse.

  • Flexibility and adaptability: The fine-grained nature of the classes provided by the framework allows a higher flexibility compared to other frameworks.

  • Utility: ParadisEO allows the user to cover a broad range of metaheuristics, problems, parallel distributed models, hybridization mechanisms, etc.

  • Transparent and easy access to performance and robustness: As the optimization applications are often time-consuming the performance issue is crucial. Parallelism and distribution are two important ways to achieve high performance execution. ParadisEO is one of the rare frameworks that provide the most common parallel and distributed models. These models can be exploited in a transparent way, one has just to instantiate their associated provided classes.

  • Portability: The implemented models are portable on distributed-memory machines as well as on shared-memory multiprocessors, as they use standard libraries such as MPI and std::threads. ParadisEO supports the most recent version of standard of the C++ programming, c++11.

This year a new module, Paradiseo-SMP, has been released. All the new features is managed via the Inria Gforge project http://paradiseo.gforge.inria.fr . The version 2.0 has been released in Septembre 2012.

Paradiseo-SMP: a new module for shared memory parallel

This year, we released a new module dedicated to shared memory parallel. This module improves the technical mechanisms of Paradiseo-PEO thanks a new software architecture and the new c+11 features.

Paradiseo-SMP implements parallel evaluation, dynamic heterogeneous island model, and their hybridization. The main features are:

  • Dynamic Island Model: topology can be changed during the execution.

  • Heterogeneous Islands: different kinds of population-based metaheuristics can communicate (evolutionary and genetic algorithm, particle swarm optimization, etc.).

  • Island Model and master/slave model can be hybridized.

All these new features are developed in c++11.

New technical features

Regarding the technical aspects, the compatibility with dependencies taken into account is:

  • c++11 features supporting.

  • Checked compatibility with different operating systems.

  • Reviewed and checked compatibility with new versions of the tools used (CMake, g++, clang, MinGW...).

  • Unit and integration test of all additional components, and experiments on classical applications.

Contributions and documentations

Many investigations were made in this context in order to help users to manipulate the framework.

  • New quick start guide is available.

  • New tutorials:

    • Tutorials SMP.

    • Tutorials GPU.

  • Updated implementation for classical problems.

Self-assessment of the team effort (software criteria: http://www.inria.fr/institut/organisation/instances/commission-d-evaluation )

(A-4-up5) Audience: 4 - Used in many universities for teaching and several companies.

(SO-4) Software Originality: 4 - ParadisEO aggregates the last results of the Dolphin team.

(SM-4) Software Maturity: 4 - Extensive documentation, strong software engineering and testing, regression testing, user feedback ...

(EM-2-up3) Evolution and Maintenance: 2 - Basic maintenance with persistent attention to users.

(SDL-4) Software Distribution and Licensing: 4 - CeCILL license, public source, Windows and Mac installer, Linux packages.

(OC) Own Contribution: (Design/Architecture) DA-4, (Coding/Debugging) CD-4, (Maintenance/Support) MS-4, (Team/Project Management) TPM-4