Backends¶

Ensemble-based optimization is handled internally by the ropt library for robust optimization, which in turn uses a plugin mechanism to provide multiple low-level optimization backends. The different backends employ various well-tested optimization packages, providing the user with a wide choice of reliable algorithms, see section Optimization backends.

Similarly, sampling backends are used to generate perturbations for gradient estimation during optimization. These are described in section: Sampling backends.

Optimization algorithms are selected by name, by setting the algorithm field in the optimization section of the EVEREST configuration file. EVEREST will find the correct backend from the name of the algorithm. In the unlikely case that multiple backends are installed that provide the same algorithm, it is possible to specify the backend by name, by setting the algorithm field to a value of the form backend-name/algorithm-name, i.e. by pre-fixing the algorithm name with the backend name, separated by a slash. Sampling methods are selected in similar fashion, using the method field in the sampler sections of the EVEREST configuration file.