Skip to content
DraconiticResearch
Search Sources API
206,698 studies31 sourcesUpdated 36 min ago
PreprintCC BY 4.0arXiv

Wrap or Rewrite? Reviving the 1989 GlobalMinimum Bayesian Global-Optimization Library for R and Python

Abstract

The GlobalMinimum library of Jonas Mockus (1989) implements some of the earliest practical Bayesian global-optimization methods -- one-step Bayesian search over a simple surrogate, Wiener-process one-dimensional models, low-discrepancy designs, and clustering multistart. We modernize this Fortran 66/77 codebase along both standard routes: wrapping the original compiled routines behind R and Python packages, and translating the core methods to Rust. First, we release packages in which every optimizer runs the genuine 1989 algorithms, with callback objectives, deterministic seeding, full evaluation traces, and validation that retrofits memory- and I/O-safety onto COMMON-block Fortran. Second, we dissect a translation-fidelity incident: the Rust port of the one-step Bayesian planner ran up to 12x slower than the wrapped Fortran -- initially misattributed to foreign-function overhead. Controlled decomposition shows call overhead is microseconds and backend-neutral; the cause was two dropped pruning rules whose restoration recovers bitwise trajectory agreement and speed parity. The same audit found transposed coefficient matrices in re-implemented Shekel and Hartmann test functions -- quiet correctness bugs of the rewrite route. Third, we benchmark the 1989 methods against modern optimizers in both ecosystems (SciPy, NLopt, CMA-ES, GP-based Bayesian optimization, GenSA, DEoptim, GA) on a COCO-style shifted-instance suite with external validation on BBOB. On classical test functions the coordinate Wiener-model search EXKOR statistically ties dual annealing at the larger budget; on BBOB's non-separable, ill-conditioned functions it drops to mid-field, quantifying the separability dependence. At tight budgets modern annealing and GP expected improvement dominate the 1989 machinery. Code and data are available.

Related

  1. No-Regret Bayesian Optimization with Finite-Library Input-Warped Kernels
    Edvin Ketabati Augustinsson, Robert A. Bridges
    arXivPreprintarXiv licenceFull textOptimisation & controlStatisticsarXiv
  2. Transfer learning in bayesian optimization for aircraft design
    Ali Tfaily, Youssef Diouane, Nathalie Bartoli +1
    Structural and Multidisciplinary OptimizationPeer-reviewedCC BY-NC-SAFull textGeneral mathematicsGeneral physicsHAL
  3. Pre-training of Bayesian Optimization Algorithm through Bayesian Optimization
    Satoshi Katayama, Shoyo Hunt, Shintaro Masuda +1
    arXivPreprintCC BY 4.0Full textStatisticsarXiv
  4. Energy-aware frugal Bayesian optimization
    Gaston Plat, Paul Saves, Nathalie Bartoli +2
    arXivPreprintCC BY 4.0Full textOptimisation & controlGeneral physicsarXiv
  5. MF-SCBO : Multi-fidelity Scalable Constrained Bayesian Optimization
    Lucas Palazzolo, Mickaël Binois, Laëtitia Giraldi
    HALPreprintCC BY 4.0Full textOptimisation & controlHALarXiv
BibTeX
@misc{mockus2026wrap,
  title = {{Wrap or Rewrite? Reviving the 1989 GlobalMinimum Bayesian Global-Optimization Library for R and Python}},
  author = {Audris Mockus},
  howpublished = {arXiv},
  year = {2026},
  month = nov,
  doi = {10.48550/arxiv.2611.08492},
  eprint = {2611.08492},
  archivePrefix = {arXiv},
  url = {https://arxiv.org/abs/2611.08492},
  note = {CC BY 4.0},
}
RIS
TY  - UNPB
TI  - Wrap or Rewrite? Reviving the 1989 GlobalMinimum Bayesian Global-Optimization Library for R and Python
AU  - Audris Mockus
PY  - 2026
DA  - 2026/11/01
PB  - arXiv
DO  - 10.48550/arxiv.2611.08492
UR  - https://arxiv.org/abs/2611.08492
AB  - The GlobalMinimum library of Jonas Mockus (1989) implements some of the earliest practical Bayesian global-optimization methods -- one-step Bayesian search over a simple surrogate, Wiener-process one-dimensional models, low-discrepancy designs, and clustering multistart. We modernize this Fortran 66/77 codebase along both standard routes: wrapping the original compiled routines behind R and Python packages, and translating the core methods to Rust. First, we release packages in which every optimizer runs the genuine 1989 algorithms, with callback objectives, deterministic seeding, full evaluation traces, and validation that retrofits memory- and I/O-safety onto COMMON-block Fortran. Second, we dissect a translation-fidelity incident: the Rust port of the one-step Bayesian planner ran up to 12x slower than the wrapped Fortran -- initially misattributed to foreign-function overhead. Controlled decomposition shows call overhead is microseconds and backend-neutral; the cause was two dropped pruning rules whose restoration recovers bitwise trajectory agreement and speed parity. The same audit found transposed coefficient matrices in re-implemented Shekel and Hartmann test functions -- quiet correctness bugs of the rewrite route. Third, we benchmark the 1989 methods against modern optimizers in both ecosystems (SciPy, NLopt, CMA-ES, GP-based Bayesian optimization, GenSA, DEoptim, GA) on a COCO-style shifted-instance suite with external validation on BBOB. On classical test functions the coordinate Wiener-model search EXKOR statistically ties dual annealing at the larger budget; on BBOB's non-separable, ill-conditioned functions it drops to mid-field, quantifying the separability dependence. At tight budgets modern annealing and GP expected improvement dominate the 1989 machinery. Code and data are available.
ER  -