Model Ensembler
model-ensembleris a tool to configure and automate running model ensembles on High-Performance Computing (HPC) clusters.
It reduces the manual configuration of individual ensemble runs, by using a common configuration to individually generate templates
for each run.
It also provides pre-and post processing functionality to allow for common tasks to be applied to the ensemble, before and after the individual runs.
model-ensembler is developed to be extendable to various HPC backends,currently supporting SLURM and running locally.
Installation
To install model-ensembler:
python -m venv venv
source venv/bin/activate
pip install model-ensembler
To check it has installed correctly, you can run:
model_ensemble_check [dummy|slurm]
Basic Usage
Under the examples/ folder you will find example configs and templates that we can run on a local machine:
examples/
├── template_job/
│ ├── inputfile.j2
│ ├── pre_run.sh.j2
│ ├── slurm_run.sh.js
│ └── post_run.sh.j2
└── ensemble_config.yml
The command model_ensemble is provided to execute the ensemble.
The --help flag can be used to find out more information:
model_ensemble --help
Its use is as follows:
model_ensemble configuration {slurm, dummy}
Here configuration refers to our configuration file, and {slurm, dummy}
are the HPC backend options (where dummy is the options to run locally).
Applying this to our examples/, and running locally:
model_ensemble examples/sanity-check.yml dummy
You are now running a model ensemble!
Documentation
For further usage instructions and an overview of model-ensembler, please refer to the documentation.
Future plans
Current plans are captured now in the github issues. There's nothing in the long term that I'm focusing on for this tool, except to maintain it and see if I can promote the usage a bit more.
This tool was merely to help out with a single support ticket for a weather model run, but the concept had potential and it was easier than deploying something more substantial! If there are better approaches or tools that do something similar, very keen to look at them!
Certainly, things like Airflow and job arrays have similar concepts, but are either more heavyweight/less suitable deployment wise or not abstracted enough for simplifying lives, respectively!!!
Cylc
Compare Cylc to model-ensembler.
Environmental Forecasting
The model-ensembler is part of a wider family of tools for Environmental Forecasting:
- download-toolbox: A toolbox of downloaders for environmental data.
- preprocess-toolbox: A toolbox for processing downloaded datasets according to common approaches for environmental data.
Copyright
© British Antarctic Survey 2021-2025
Metadata
Release files for model-ensembler 0.6.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| model_ensembler-0.6.2.tar.gz | 27.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| model_ensembler-0.6.2-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 52.8 kB
Release files / model_ensembler-0.6.2.tar.gz
| Download URL | model_ensembler-0.6.2.tar.gz |
|---|---|
| Size | 27.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
707dcab4403bbc46f54053ad0237d8ef86dec364e1a2b16cd0b828922293e68c
|
|
BLAKE2b-256 checksum How to use checksums |
c666b4fee39da76b97b1f12eba3f2f41b366207a7434b3facc8222aafc56031d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / model_ensembler-0.6.2-py2.py3-none-any.whl
| Download URL | model_ensembler-0.6.2-py2.py3-none-any.whl |
|---|---|
| Size | 25.8 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
f94d4b6391a7f6893fe518375cdb9ee7ab51ff3d9e15f2db82b4ce00e8aa0f81
|
|
BLAKE2b-256 checksum How to use checksums |
528895c4b9059a688ddb7c2ae720710c94d8452a2529215ce52af739e3cb5c6e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|