paulknysh/blackbox

A Python module for parallel optimization of expensive black-box functions

What it solves

It provides a way to find the global minimum of "black-box" functions that are computationally expensive to evaluate, such as those used for tuning neural network hyperparameters or running complex simulations.

How it works

The module takes a target function, a defined search domain (parameter ranges), and a total budget of function calls. It optimizes the search by dividing function calls into batches that are evaluated in parallel across multicore CPUs or clusters. Users can use the the default multiprocessing.Pool or provide a custom parallel engine like Dask or ipyparallel.

Who it’s for

Developers and researchers who need to optimize parameters for time-consuming processes where the underlying mathematical function is unknown or too complex to derive.

Highlights

  • Parallel Execution: Scales across multicore CPUs and clusters by batching function evaluations.
  • Flexible Execution: Supports custom parallel engines (e.g., Dask, ipyparallel, pathos) via a callable executor.
  • Minimalist API: Requires only a function, a domain, and a budget to begin optimization.

Related

  • Project
  • Project
  • Project
  • Project
  • Project