Components

Below is a brief introduction to the most important components of the code to orientate first-time users. GloMPO is implemented in a modular way such that all decision criteria are customizable.

Note

If a module is not mentioned below, then its contents is probably not intended to be used directly by users.

core

This module contains the most important GloMPO components:

manager.py

Contains GloMPOManager the primary point of entry into the code. The manager performs the optimization, accepts all settings, and produces all the output.

checkpointing.py

Contains CheckpointingControl which configures GloMPO’s ability to save a snapshot of itself during an optimization from which it can resume later.

function.py

An API template for the optimization task from which it may, but need not, inherit.

optimizerlogger.py

Contains classes used to record optimizations in memory and save them to file. Users should not need to work with these classes directly

opt_selectors

Each file contains a different BaseSelector child-class. These objects decide which optimizer configuration to start from a list of options.

optimizers

Each file contains a different BaseOptimizer child-class. These are implementations or wrappers around actual optimization algorithms.

generators

Each file contains a different BaseGenerator child-class. These are algorithms which decide where optimizers are started within the search domain.

exitconditions

Each file contains a different BaseExitCondition child-class. These are simple conditions which control GloMPO’s overall termination conditions.

stoppers

Each file contains a different BaseStopper child-class. These are termination conditions which, if satisfied, will get GloMPO to trigger an early termination of a particular optimizer.

analysis

Module containing classes related to parameter sensitivity analysis

hsic.py

Contains the class HSIC to compute new results and HSICResult to load previous ones.

kernels.py

Contains the kernels needed for the HSIC calculation. Users can use BaseKernel to implement their own kernels.