PaGMO  1.1.5
PaGMO (Parallel Global Multiobjective Optimizer)


These pages contain the documentation of PaGMO (C++) API. PaGMO offers a generalization of the island model paradigm working for global and local optimization algorithms. Its main parallelization approach makes use of multiple threads, but MPI is also implemented and can be mixed in with multithreading. PaGMO can be used to solve in a parallel fashion, global optimization tasks in the form:

$ \begin{array}{rl} \mbox{find:} & \mathbf x \in R^n \times N^m \\ \mbox{to minimize:} & \mathbf f(\mathbf x, \mathbf s) \\ \mbox{subject to:} & \mathbf {lb} \le \mathbf x \le \mathbf {ub} \\ & \mathbf c(\mathbf x) = \mathbf 0 \\ & \mathbf c_{in}(\mathbf x) \le \mathbf 0 \end{array} $

.... yes it is that good ... its framework is applicable to single-objective, multiple-objectives, continuous, integer, box-constrained, non linear constrained, stochastic, deterministic optimization!!!!

See also
Izzo, D., PyGMO and PyKEP: Open Source Tools for Massively Parallel Optimization in Astrodynamics (the case of interplanetary trajectory optimization), International Conference on Astrodynamics Tools and Techniques - ICATT, 2012.
Izzo, D., Rucinski, M., and Biscani, F., The Generalized Island Model, Parallel Architectures and Bioinspired Algorithms, Springer Berlin/Heidelberg, pp.151–169, 2012.
Rucinski, M., Izzo, D., and Biscani, F., On the Impact of the Migration Topology on the Island Model, Parallel Computing, 36, Elsevier, pp.555-571, 2010.

MPI support

By default PaGMO parallelizes the optimization process by opening multiple local threads of execution, and hence the parallelism is confined to a single machine. For use in cluster environments, PaGMO can employ MPI (Message Passing Interface) to distribute the workload among multiple machines. Detailed instructions on how to enable and use the MPI support in PaGMO can be found in this page.