Skip to content

pagmo 2.11

Compare
Choose a tag to compare
@bluescarni bluescarni released this 07 Aug 21:26
· 765 commits to master since this release

This is the largest pagmo2 release so far, coming after 7 months of hard work by the development team.

To start off, we have new algorithms contributed by @Sceki and @michiboo, the Extended Ant Colony Optimization (gaco) and the Grey Wolf Optimizer (gwo). @Sceki is our ESA SOCIS (summer of code in space) student and he's working hard on various new algorithmic developments. You'll hear more from him!

Secondly, two large developer-oriented improvements:

  • pagmo is now a compiled library, instead of a header-only library. This results in much shorter compilation times for typical testing/development workflows, and it makes the pagmo.hpp header usable again;
  • we switched from Cereal to Boost for the serialization backend. Cereal's development unfortunately seems to have stalled. Additionally, because the library is header-only, it was causing noticeable compilation slowdowns, and it was not playing well with our associated packages API, requiring various hacks that now have been removed.

Then, we have the first version of two new features that have been often requested by the users:

  • a batch fitness evaluation framework (bfe), which, among others, allows to parallelise the initialisation of populations, islands and archipelagos. The bfe also allows to accelerate via GPU/SIMD vectorisation the simultaneous computation of the objective function for many decision vectors in batch mode, which can be exploited by population-based algorithms (currently, our implementations of ACO and NSGA2 take advantage of this feature, more algorithms will in the future);
  • the migration feature has finally been implemented! This is an improved version of the migration framework which was available in pagmo1, and it allows to implement both topologies and replacement/selection policies directly from Python (whereas in pagmo1 the migration classes could only be coded in C++).

Although these two features are fully functional, there still remains work to be done (e.g., we need to port most of the actual topologies from pagmo1, implement Python-oriented bfes, write proper introductory tutorials/docs, etc.). We expect in the next few weeks to release regularly and often new pagmo versions which will gradually fill in the missing bits.

pagmo 2.12 also features a new problem test suite (WFG) and the usual host of fixes and docs improvements.

As usual, the full changelog is available here:

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