Optimization at scale, powered by libEnsemble
Optimas is a Python library designed for highly scalable optimization, from laptops to massively-parallel supercomputers.
- Scalability: Leveraging the power of libEnsemble, Optimas is designed to scale seamlessly from your laptop to high-performance computing clusters.
- User-Friendly: Optimas simplifies the process of running large parallel parameter scans and optimizations. Specify the number of parallel evaluations and the computing resources to allocate to each of them and Optimas will handle the rest.
- Advanced Optimization: Optimas integrates algorithms from the Ax library, offering both single- and multi-objective Bayesian optimization. This includes advanced techniques such as multi-fidelity and multi-task algorithms.
You can install Optimas from PyPI (recommended):
python -m pip install "optimas[all]"
from conda-forge:
conda install optimas --channel conda-forge
or directly from GitHub:
python -m pip install "optimas[all] @ git+https://github.com/optimas-org/optimas.git"
Make sure mpi4py
is available in your environment before installing optimas. For more details, check out the full installation guide. We have also prepared dedicated installation instructions for some HPC systems such as
JUWELS (JSC),
Maxwell (DESY) and
Perlmutter (NERSC).
For more information on how to use Optimas, check out the documentation. You'll find installation instructions, a user guide, examples and the API reference.
Need more help? Join our Slack channel or open a new issue.
If your usage of Optimas leads to a scientific publication, please consider citing the original paper:
@article{PhysRevAccelBeams.26.084601,
title = {Bayesian optimization of laser-plasma accelerators assisted by reduced physical models},
author = {Ferran Pousa, A. and Jalas, S. and Kirchen, M. and Martinez de la Ossa, A. and Th\'evenet, M. and Hudson, S. and Larson, J. and Huebl, A. and Vay, J.-L. and Lehe, R.},
journal = {Phys. Rev. Accel. Beams},
volume = {26},
issue = {8},
pages = {084601},
numpages = {9},
year = {2023},
month = {Aug},
publisher = {American Physical Society},
doi = {10.1103/PhysRevAccelBeams.26.084601},
url = {https://link.aps.org/doi/10.1103/PhysRevAccelBeams.26.084601}
}
and libEnsemble:
@article{Hudson2022,
title = {{libEnsemble}: A Library to Coordinate the Concurrent
Evaluation of Dynamic Ensembles of Calculations},
author = {Stephen Hudson and Jeffrey Larson and John-Luke Navarro and Stefan M. Wild},
journal = {{IEEE} Transactions on Parallel and Distributed Systems},
volume = {33},
number = {4},
pages = {977--988},
year = {2022},
doi = {10.1109/tpds.2021.3082815}
}