https://github.com/aidancrilly/mille-feuille
Bayesian Optimisation wrapper for HPC scale simulations
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (17.9%) to scientific vocabulary
Repository
Bayesian Optimisation wrapper for HPC scale simulations
Basic Info
- Host: GitHub
- Owner: aidancrilly
- License: mit
- Language: Python
- Default Branch: main
- Size: 565 KB
Statistics
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 1
- Releases: 1
Metadata Files
README.md
mille-feuille

mille‑feuille acts as an orchestrator when running sampling, learning and optimisation loops against expensive MPI-parallelised HPC codes. For optimisation, mille‑feuille is a thin wrapper on top of BoTorch, providing the necessary interface between simulators, surrogates and optimisers.
Status: early days – very much a work in progress
Used in the following publications:
🔧 Install
Pip:
```bash
Development head
pip install git+https://github.com/aidancrilly/mille-feuille.git ```
Or clone repo and install dev environment:
bash
git clone https://github.com/aidancrilly/mille-feuille.git
cd mille-feuille
pip install -e .[dev]
python dev_fetch_deps.py # Grabs header file needed by C++ test script
Requires Python ≥ 3.11. Core dependencies (botorch, gpytorch, numpy, scipy, h5py, scikit‑learn …) are pulled in automatically.
🚀 Quick‑start
Take a look at the examples directory and sub-directories within:
- test_executables: simple (fortran90 and C++) examples implemented for the test suite.
- loops: example scripts which use
mille‑feuilleto perform sampling, learning and optimisation tasks. This example includes a template for a simulator with namelist based input and scheduling within a PBS environment.
Core components
Domains, States and Surrogates
mille‑feuille implements the following containers:
- InputDomain holds the bounded input domain which can be a mix of continuous and discrete dimension
- FidelityDomain holds information regarding the degrees of simulation fidelity.
- State holds the necessary data taken from simulation samples: indices (Is), inputs (Xs), output parameters (Ps), fidelities (Ss) and objectives (Ys)
These classes hold the necessary information to train surrogate models. mille‑feuille has a number of abstract base classes as well as concrete examples of surrogate models including Gaussian Processes (using GPyTorch and BOTorch) and Neural Network Ensembles (using PyTorch and BOTorch).
Simulators and Schedulers
mille‑feuille implements abstract base classes to interact with generic executable simulators. These follow a simple design pattern that simulators are expected to follow:
- External input files are written based on the candidate X values
- Batches of the (mpiexec'ed) simulator are launched via a Scheduler
- The simulator writes output files which must be post-processed to extract useful information (P) and the objective function value (Y)
- (Optionally) A clean up of the Simulator and Schedular output files is performed
Take a look at the examples and the tests to see implementations of Simulators and Schedulers.
Additional Info
CI makes use of cached IntelOneAPI install by scivision
✉️ Contact
Aidan Crilly · ac116@ic.ac.uk
Licensed under MIT © 2025
Owner
- Name: Aidan Crilly
- Login: aidancrilly
- Kind: user
- Repositories: 3
- Profile: https://github.com/aidancrilly
Schmidt Future AI in Science Postdoctoral Fellow, I-X, Imperial College London
GitHub Events
Total
- Create event: 10
- Release event: 1
- Issues event: 3
- Watch event: 3
- Push event: 52
- Public event: 1
- Pull request event: 22
- Fork event: 1
Last Year
- Create event: 10
- Release event: 1
- Issues event: 3
- Watch event: 3
- Push event: 52
- Public event: 1
- Pull request event: 22
- Fork event: 1
Issues and Pull Requests
Last synced: 10 months ago
All Time
- Total issues: 2
- Total pull requests: 15
- Average time to close issues: 8 days
- Average time to close pull requests: about 8 hours
- Total issue authors: 1
- Total pull request authors: 2
- Average comments per issue: 0.0
- Average comments per pull request: 0.0
- Merged pull requests: 11
- Bot issues: 0
- Bot pull requests: 3
Past Year
- Issues: 2
- Pull requests: 15
- Average time to close issues: 8 days
- Average time to close pull requests: about 8 hours
- Issue authors: 1
- Pull request authors: 2
- Average comments per issue: 0.0
- Average comments per pull request: 0.0
- Merged pull requests: 11
- Bot issues: 0
- Bot pull requests: 3
Top Authors
Issue Authors
- aidancrilly (2)
Pull Request Authors
- aidancrilly (11)
- github-actions[bot] (3)