model-ensembler


Namemodel-ensembler JSON
Version 0.6.0 PyPI version JSON
download
home_pageNone
SummaryModel Ensembler for managed batch workflows
upload_time2025-07-16 10:13:57
maintainerNone
docs_urlNone
authorNone
requires_python>=3.7
licenseNone
keywords slurm hpc tools batch model ensemble local
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Model Ensembler
![GitHub issues](https://img.shields.io/github/issues/environmental-forecasting/model-ensembler?style=plastic)
![GitHub closed issues](https://img.shields.io/github/issues-closed/environmental-forecasting/model-ensembler?style=plastic)
![GitHub](https://img.shields.io/github/license/environmental-forecasting/model-ensembler)
![GitHub forks](https://img.shields.io/github/forks/environmental-forecasting/model-ensembler?style=social)
![GitHub forks](https://img.shields.io/github/stars/environmental-forecasting/model-ensembler?style=social)
[![Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public.](https://www.repostatus.org/badges/latest/wip.svg)](https://www.repostatus.org/#wip)
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md)

`model-ensembler`is 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:

```shell
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:

```shell
model_ensemble --help
```
Its use is as follows:

```shell
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:

```shell
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](https://cylc.github.io/) to `model-ensembler`. 

## Environmental Forecasting
The `model-ensembler` is part of a wider family of tools for [Environmental Forecasting](https://github.com/environmental-forecasting):

* [download-toolbox](https://github.com/environmental-forecasting/download-toolbox): A toolbox of downloaders for environmental data.
* [preprocess-toolbox](https://github.com/environmental-forecasting/preprocess-toolbox): A toolbox for processing downloaded datasets according to common approaches for environmental data.

## Copyright
[MIT LICENSE](LICENSE)

© British Antarctic Survey 2021-2025


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "model-ensembler",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "James Byrne <jambyr@bas.ac.uk>, Thomas Zwagerman <thozwa@bas.ac.uk>",
    "keywords": "slurm, hpc, tools, batch, model, ensemble, local",
    "author": null,
    "author_email": "James Byrne <jambyr@bas.ac.uk>",
    "download_url": "https://files.pythonhosted.org/packages/b4/71/8f2d84d9210422082ad1986d98ad2cdf60408646d9481c7c0c503446df65/model_ensembler-0.6.0.tar.gz",
    "platform": null,
    "description": "# Model Ensembler\n![GitHub issues](https://img.shields.io/github/issues/environmental-forecasting/model-ensembler?style=plastic)\n![GitHub closed issues](https://img.shields.io/github/issues-closed/environmental-forecasting/model-ensembler?style=plastic)\n![GitHub](https://img.shields.io/github/license/environmental-forecasting/model-ensembler)\n![GitHub forks](https://img.shields.io/github/forks/environmental-forecasting/model-ensembler?style=social)\n![GitHub forks](https://img.shields.io/github/stars/environmental-forecasting/model-ensembler?style=social)\n[![Project Status: WIP \u2013 Initial development is in progress, but there has not yet been a stable, usable release suitable for the public.](https://www.repostatus.org/badges/latest/wip.svg)](https://www.repostatus.org/#wip)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md)\n\n`model-ensembler`is a tool to configure and automate running model ensembles on High-Performance Computing (HPC) clusters.\nIt reduces the manual configuration of individual ensemble runs, by using a common configuration to individually generate templates\nfor each run.\n\nIt also provides pre-and post processing functionality to allow for common tasks to be applied to the ensemble, before\nand after the individual runs. \n\n`model-ensembler` is developed to be extendable to various HPC backends,currently supporting SLURM and running locally. \n\n## Installation\nTo install `model-ensembler`:\n```\npython -m venv venv\nsource venv/bin/activate\npip install model-ensembler\n```\n\nTo check it has installed correctly, you can run:\n```\nmodel_ensemble_check [dummy|slurm]\n```\n\n## Basic Usage\nUnder the `examples/` folder you will find example configs and templates that we can run on a local machine:\n\n```shell\nexamples/\n\u251c\u2500\u2500 template_job/\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 inputfile.j2\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 pre_run.sh.j2\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 slurm_run.sh.js\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 post_run.sh.j2\n\u2514\u2500\u2500 ensemble_config.yml\n```\n\nThe command `model_ensemble` is provided to execute the ensemble.\n\nThe `--help` flag can be used to find out more information:\n\n```shell\nmodel_ensemble --help\n```\nIts use is as follows:\n\n```shell\nmodel_ensemble configuration {slurm, dummy}\n```\n\nHere `configuration` refers to our configuration file, and `{slurm, dummy}`\nare the HPC backend options (where `dummy` is the options to run locally). \n\nApplying this to our `examples/`, and running locally:\n\n```shell\nmodel_ensemble examples/sanity-check.yml dummy\n```\n\nYou are now running a model ensemble!\n\n## Documentation\nFor further usage instructions and an overview of `model-ensembler`, please refer to the documentation.\n\n## Future plans\nCurrent plans are captured now in the github issues. There's nothing in the \nlong term that I'm focusing on for this tool, except to maintain it and see \nif I can promote the usage a bit more. \n\nThis tool was merely to help out with a single support ticket for a weather \nmodel run, but the concept had potential and it was easier than deploying \nsomething more substantial! If there are better approaches or tools that do \nsomething similar, very keen to look at them! \n\nCertainly, things like Airflow and job arrays have similar concepts, but are \neither more heavyweight/less suitable deployment wise or not abstracted enough \nfor simplifying lives, respectively!!!\n\n## Cylc\n\nCompare [Cylc](https://cylc.github.io/) to `model-ensembler`. \n\n## Environmental Forecasting\nThe `model-ensembler` is part of a wider family of tools for [Environmental Forecasting](https://github.com/environmental-forecasting):\n\n* [download-toolbox](https://github.com/environmental-forecasting/download-toolbox): A toolbox of downloaders for environmental data.\n* [preprocess-toolbox](https://github.com/environmental-forecasting/preprocess-toolbox): A toolbox for processing downloaded datasets according to common approaches for environmental data.\n\n## Copyright\n[MIT LICENSE](LICENSE)\n\n&copy; British Antarctic Survey 2021-2025\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Model Ensembler for managed batch workflows",
    "version": "0.6.0",
    "project_urls": {
        "Bug Tracker": "https://www.github.com/jimcircadian/model-ensembler/issues",
        "Change Log": "https://github.com/environmental-forecasting/model-ensembler/blob/main/CHANGELOG.md",
        "Homepage": "https://www.github.com/jimcircadian/model-ensembler"
    },
    "split_keywords": [
        "slurm",
        " hpc",
        " tools",
        " batch",
        " model",
        " ensemble",
        " local"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e78d6461320c799c474af8c2c4284a2eba150a5ae4ab7be043283d806e052703",
                "md5": "886ed2b0d5723e94a9d68b29913bdc6f",
                "sha256": "74fdb38cd30615afdf058fa0e2bca1f42142384a85f6e2fe9a19e3dbc9d0e244"
            },
            "downloads": -1,
            "filename": "model_ensembler-0.6.0-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "886ed2b0d5723e94a9d68b29913bdc6f",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": ">=3.7",
            "size": 17332,
            "upload_time": "2025-07-16T10:13:56",
            "upload_time_iso_8601": "2025-07-16T10:13:56.284144Z",
            "url": "https://files.pythonhosted.org/packages/e7/8d/6461320c799c474af8c2c4284a2eba150a5ae4ab7be043283d806e052703/model_ensembler-0.6.0-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b4718f2d84d9210422082ad1986d98ad2cdf60408646d9481c7c0c503446df65",
                "md5": "7e355189d0c4ddd262ab2cb871eefcd6",
                "sha256": "2ebf6a2bc08265a658286baa40a4c59e47dd820cbec1a08928521aa865e899e4"
            },
            "downloads": -1,
            "filename": "model_ensembler-0.6.0.tar.gz",
            "has_sig": false,
            "md5_digest": "7e355189d0c4ddd262ab2cb871eefcd6",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 21404,
            "upload_time": "2025-07-16T10:13:57",
            "upload_time_iso_8601": "2025-07-16T10:13:57.096612Z",
            "url": "https://files.pythonhosted.org/packages/b4/71/8f2d84d9210422082ad1986d98ad2cdf60408646d9481c7c0c503446df65/model_ensembler-0.6.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-16 10:13:57",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jimcircadian",
    "github_project": "model-ensembler",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "model-ensembler"
}
        
Elapsed time: 0.53177s