Software

The core of my research activities is focused on the design, implementation and analysis of algorithmic approaches for the efficient and effective solving of optimization problems. In addition, within the context of my Ph.D supervising we have an increasing activity in software development driven by our goal of making our algorithmic contributions openly available to the optimization community. On the one hand, this leads us to develop some homemade prototype codes: Permutation Branch-and-Bound (pBB) and Python library for Surrogate-based Optimization (pySBO). On the other hand, we started in 2020 to develop the more ambitious Python-based Parallel and distributed Evolving Objects (PyParadisEO) software framework within the context the PyParadisEO project supported by Inria (see Section "Granted projects"). The three software are detailed in the following:

  • PyParadisEO is a Python version of ParadisEO, a C++-based open-source (CeCILL licence) whitebox framework dedicated to the reusable design of metaheuristics. ParadisEO allows the design and implementation of single-solution (Hill-Climbing, Tabu Search, Simulated annealing, Iterative Local Search - ILS, etc.) and population-based (Genetic algorithms, Particle Swarm Optimization (PSO), etc.) metaheuristics for single- and multi-objective, continuous, discrete and mixed optimization. The major parallel models (parallel evaluation of a population/neighborhood, island model, etc.) are also provided in the framework. ParadisEO has been launched within the framework of the Ph.D thesis of S. Cahon I have co-supervised (with E-G. Talbi). This framework has been popular (58.000+ downloads, 135.000+ visitors from 145 countries, 250+ users, 1000+ citations of related papers). However, C++ ParadisEO has lost ground to other frameworks developed in Python, which are more accessible especially to non experts in programming and metaheuristics. Supported by Inria, the goal of the PyParadisEO project is to migrate ParadisEO to Python in order to: (1) facilitate its use and gain in competitiveness, and (2) improve its interoperability with other solvers, simulators and ML tools (which is particularly important for our research program). After two years of development, we have a preliminary documented online version including single-objective metaheuristics. Our objective, if we get manpower, is to extend it to include multi/many-objective optimization, parallelism, decomposition and cooperation with ML.

  • pySBO is a Python open-source (CeCILL licence) software aiming at facilitating the implementation of parallel surrogate-based optimization algorithms. pySBO provides re-usable components (surrogate models, evolution controls, infill criteria, evolutionary operators) as well as the foundations to allow their inter-changeability. Actual implementations of sequential and parallel surrogate-based optimization algorithms are supplied as ready-to-use tools to handle expensive single- and multi-objective problems. An illustrated documentation is available on-line through the below dedicated Web site. pySBO has mainly been developed by G. Briffoteaux during his Ph.D thesis I jointly supervised with D. Tuyttens, with a weak contribution from Monash University, Australia.

  • pBB is an open-source (CeCILL licence) supplying various parallel implementations of the Branch-and-Bound (B&B) algorithm for permutation problems. B&B proceeds by implicit enumeration of the search space by parallel exploration of a highly irregular search tree. pBB contains implementations for single-core, multi-core, GPU and heterogeneous distributed platforms. Thanks to its hierarchical work-stealing mechanism, required to deal with the strong irregularity of the search tree, pBB is highly scalable. Scalability with up to 90% parallel efficiency on several hundreds of GPUs has been demonstrated on the Jean Zay supercomputer located at IDRIS, Paris. pBB has mainly been developed by J. Gmys during his Ph.D thesis, jointly supervised with D. Tuyttens, and extended to petascale B&B during his post-doc position under the same supervising.