Table of Contents
Fetching ...

Massively Parallel Genetic Optimization through Asynchronous Propagation of Populations

Oskar Taubert, Marie Weiel, Daniel Coquelin, Anis Farshian, Charlotte Debus, Alexander Schug, Achim Streit, Markus Götz

TL;DR

An MPI-based implementation of the Propulate algorithm is provided, which features variants of selection, mutation, crossover, and migration and is easy to extend with custom functionality and is compared to the established optimization tool Optuna.

Abstract

We present Propulate, an evolutionary optimization algorithm and software package for global optimization and in particular hyperparameter search. For efficient use of HPC resources, Propulate omits the synchronization after each generation as done in conventional genetic algorithms. Instead, it steers the search with the complete population present at time of breeding new individuals. We provide an MPI-based implementation of our algorithm, which features variants of selection, mutation, crossover, and migration and is easy to extend with custom functionality. We compare Propulate to the established optimization tool Optuna. We find that Propulate is up to three orders of magnitude faster without sacrificing solution accuracy, demonstrating the efficiency and efficacy of our lazy synchronization approach. Code and documentation are available at https://github.com/Helmholtz-AI-Energy/propulate

Massively Parallel Genetic Optimization through Asynchronous Propagation of Populations

TL;DR

An MPI-based implementation of the Propulate algorithm is provided, which features variants of selection, mutation, crossover, and migration and is easy to extend with custom functionality and is compared to the established optimization tool Optuna.

Abstract

We present Propulate, an evolutionary optimization algorithm and software package for global optimization and in particular hyperparameter search. For efficient use of HPC resources, Propulate omits the synchronization after each generation as done in conventional genetic algorithms. Instead, it steers the search with the complete population present at time of breeding new individuals. We provide an MPI-based implementation of our algorithm, which features variants of selection, mutation, crossover, and migration and is easy to extend with custom functionality. We compare Propulate to the established optimization tool Optuna. We find that Propulate is up to three orders of magnitude faster without sacrificing solution accuracy, demonstrating the efficiency and efficacy of our lazy synchronization approach. Code and documentation are available at https://github.com/Helmholtz-AI-Energy/propulate
Paper Structure (11 sections, 5 figures, 4 tables, 2 algorithms)

This paper contains 11 sections, 5 figures, 4 tables, 2 algorithms.

Figures (5)

  • Figure 1: Asynchronous propagation. Interaction of two workers on one island. Individuals bred by worker 1 and 2 are shown in blue and red, respectively. Their origins are given by a generation sub- and an island superscript. Populations are depicted as round grey boxes, where most recent individuals have black outlines. Varying evaluation times are represented by sharp boxes of different widths. We illustrate the asynchronous propagation and intra- island synchronization of the population using the example of the blue individual $\mathrm{ind}_{g3}^{i1}$. This individual is bred by worker 1 in generation 3 by applying the propagator (yellow) to the worker's current population. After evaluating $\mathrm{ind}_{g3}^{i1}$, worker 1 sends it to all workers on its island and appends it to its population. As no evaluated individuals dispatched by worker 2 await to be received, worker 1 proceeds with breeding. Worker 2 receives the blue $\mathrm{ind}_{g3}^{i1}$ only after finishing the evaluation of the red $\mathrm{ind}_{g2}^{i1}$. It then appends both to its population and breeds a new individual for generation 3.
  • Figure 2: Asynchronous pollination. Consider two islands with $N$ (blue) and $M$ (red) workers, respectively. We illustrate pollination (dark colors) by tracing worker $N$ on island 1. After evaluation and mutual intra- island updates (light blue, see \ref{['fig:async_propagation']}), this worker performs pollination: it sends copies of the chosen pollinators to all workers of each target island, here island 2. The target island's workers receive the pollinators asynchronously (dark blue arrows). For proper accounting of the populations, worker 1 on island 2, selects the individual to be replaced and informs all workers on its island accordingly (middle red arrow). Afterwards, worker $N$ receives incoming pollinators from island 2 to be included into its population. It then probes for individuals that have been replaced by other workers on its island, here worker 1, in the meantime and need to be deactivated. After these pollination- related intra- island population updates, it breeds the next generation. As pollination does not occur in this generation, it directly receives pollinators from island 2. This time, worker $N$ chooses the individual to be replaced.
  • Figure 3: Benchmark function minimization accuracy over walltime. Lowest function values found by Propulate (red) and Optuna (blue) versus walltimes to reach them, each averaged over ten runs. Step is not shown since both optimizers achieve a perfect value of $-25$ within 0.6 s and 278.2 s, respectively.
  • Figure 4: Evolution of the population over walltime for the Rastrigin function.Propulate (left) versus Optuna (right). OF values (blue) use the left- hand scale, distances to the global optimum (purple) use the right- hand scale. Pastel dots show each individual's OF value/distance. Solid (dashed) lines show the minimum (median) value and distance achieved so far. Maximum value (distance) are shown in black. Both optimizers perform 38 912 evaluations. Note the difference on the time axis.
  • Figure 5: Scaling with respect to a baseline of eight workers. Weak efficiency (top) and strong linear speedup (bottom). Use case and search space are described in \ref{['subsec:nn-optimization']}. Weak- scaling problem size is varied via the number of OF evaluations. Results are averaged over three runs.