Skip to content

Releases: esa/pagmo2

pagmo 2.19.0

21 Jan 08:46
Compare
Choose a tag to compare

This new pagmo release features several fixes, a few feature additions and a performance optimisation for highly parallel workloads.

The full changelog, as usual, is available here:

https://esa.github.io/pagmo2/changelog.html

pagmo 2.18.0

03 Aug 07:33
Compare
Choose a tag to compare

Full changelog: https://esa.github.io/pagmo2/changelog.html

Support for non-x86 CPUs

pagmo 2.18.0 adds official support for non-x86 processors, specifically 64-bit ARM and PowerPC. Automated builds on these architectures have been added to the CI pipeline, courtesy of travis and circleci.

Serialisation changes

This release includes various changes in the serialisation of the main classes. Although these changes are internal and they do not affect the public API, they do affect the data format of the serialised archives. As a result, it's not possible in pagmo 2.18.0 to load from archives produced with earlier versions of pagmo.

Build system fixes & improvements

pagmo’s build system now honours the CMAKE_INSTALL_LIBDIR setting on Linux to determine the library installation path.

pagmo 2.17.0

05 Mar 12:55
Compare
Choose a tag to compare

This is a small release to fix pagmo's compatibility with recent TBB versions (a.k.a., oneTBB).

The full changelog, as usual, is available here:

https://esa.github.io/pagmo2/changelog.html

pagmo 2.16.1

22 Dec 10:42
Compare
Choose a tag to compare

This is a minor release which fixes a few build issues recently reported by our users. As a consequence of these fixes, pagmo now requires CMake >= 3.8 when compiling from source.

Note also that, thanks to the recent availability of an Ipopt Windows package in conda-forge, the pagmo conda package for Windows is now built with Ipopt support turned on.

As usual, the full changelog is available here:

https://esa.github.io/pagmo2/changelog.html

pagmo 2.16.0

25 Sep 09:08
Compare
Choose a tag to compare

This new release focuses mostly on polish and bug fixes. Specifically:

  • a couple of important issues have been rectified in the PSO and genetic algorithms,
  • adding individuals to a population is now substantially faster,
  • various build issues affecting newer versions of pagmo's dependencies have been corrected.

Other changes:

  • pagmo now requires a C++17-capable compiler,
  • the pagmo library can now be built also a static library,
  • pagmo can now be built with link-time optimisations enabled.

The full changelog, as usual, is available here:

https://esa.github.io/pagmo2/changelog.html

pagmo 2.15.0

02 Apr 14:19
Compare
Choose a tag to compare

This new pagmo release features various enhancements to the topology API, and additional runtime introspection capabilities for all type-erased classes.

It also fixes a serious issue appearing on certain compiler/platform combinations where dynamic_cast does not work across dlopen()ed shared libraries. Another important fix involves compilation with recent CMake versions.

The full changelog, as usual, is available here:

https://esa.github.io/pagmo2/changelog.html

pagmo 2.14.0

04 Mar 19:57
Compare
Choose a tag to compare

This new pagmo release comes with a couple of very important internal changes in the project:

  • the Python bindings (pygmo) have been split off into a separate and independent project (https://github.com/esa/pygmo2). Although pagmo and pygmo were already clearly separated, residing into separate directories of the pagmo source tree, the fact that they were bundled together in the same repository was the source of a variety of complications in the build system and in the packaging pipeline, and also a source of confusion for newcomers to the project. Hopefully this new setup spells out more clearly the relation between pagmo and pygmo: pygmo is a Python extension module which depends on the pagmo C++ library.
  • We also took advantage of the project split to move the pygmo bindings from Boost.Python to the more modern pybind11 (https://github.com/pybind/pybind11). This switch should have a variety of benefits, including reduced CPU and memory usage during compilation, increased performance at runtime, better integration with NumPy, and reliance of a more actively maintained project.

The switch to pybind11 was a massive rework of the pygmo codebase, which, hopefully, should have small effects on pygmo users. The API of pygmo has not changed, however some small details did change (e.g., pybind11 sometimes translates C++ exceptions to Python differently from Boost.Python). We tested this pygmo release particularly thoroughly, however, because of the scope of the changes it is likely that we might have missed something. Please report any issue you find to our bugtracker:

https://github.com/esa/pygmo2/issues

This release also brings a couple of new features and the usual assortment of fixes and optimisations. The full changelogs, as usual, are available here:

https://esa.github.io/pagmo2/changelog.html
https://esa.github.io/pygmo2/changelog.html

pagmo 2.13.0

10 Jan 08:30
Compare
Choose a tag to compare

In this release of pagmo, the batch fitness evaluation framework has been completed on the Python side. This means that now it is possible to exploit fine-grained parallelisation (e.g., parallel initialisation of populations/islands/archipelagos, parallelisation of the inner loops of some algorithms, etc.) also for user-defined problems implemented in Python. Two pythonic batch fitness evaluators are available, one based on multiprocessing and the other using ipyparallel instead (which makes it possible to do parallel objective function evaluations on a cluster).

This release also contains a couple of important bugfixes, one of them fixing a crash due to mishandling of NaN values in the hypervolume utilities.

NOTE: as anticipated, in this release of pygmo Python 2.7 support has been dropped. pygmo now requires at least Python 3.4.

The full changelog, as usual, is available here:

https://esa.github.io/pagmo2/changelog.html

pagmo 2.12.0

18 Dec 12:55
Compare
Choose a tag to compare

This new pagmo/pygmo release features 2 brand new algorithms (NSPSO and MHACO), and an important feature addition to GPSO, which can now use the batch fitness evaluation scheme.

On the python side, there are some breaking changes in the API of ipyparallel_island, which should take care of various issues that we have been intermittently experiencing on our CI setup.

This release features also the usual build system/doc improvements/maintenance and assortment of small fixes.

As a public service announcement, this will be the last release of pygmo to officially support Python 2.7, which, as you may know, is reaching its end of life very soon (https://pythonclock.org/).

We do not plan to actively go and remove existing Python 2 support code within pygmo (at least not initially), but we will simply stop ensuring that pygmo does work on Python 2, and new pygmo code will target Python 3 exclusively. We will also stop producing binary packages for Python 2, both pip and conda (please note that conda-forge will also remove Python 2 support soon).

If anyone in the pygmo community wants to take charge of maintaining Python 2 support, we are open to discussions in this sense (please come over to our gitter channel: https://gitter.im/pagmo2/Lobby).

The full changelog, as usual, is available here:

https://esa.github.io/pagmo2/changelog.html

pagmo 2.11.4

29 Sep 18:07
Compare
Choose a tag to compare

This point release contains a couple of important bugfixes:

  • various sorting/ranking utilities should now be more robust if the input data contains NaNs,
  • a critical bug in the generational PSO algorithm was discovered and fixed by @Sceki.

As usual, the full changelog is available here:

https://esa.github.io/pagmo2/changelog.html