Skip to main content

An adaptive and highly asynchronous ensemble simulation workflow manager MatEnsemble (https://github.com/Q-CAD/MatEnsemble) built jointly on top of the hierarchical graph based scheduler FLUX and concurrent-futures infrastructure of python

Project description

PyPI version Documentation Python License

MatEnsemble

MatEnsemble

MatEnsemble is a Python library for high-throughput workflows on HPC systems. You define a directed acyclic graph (DAG) of chores—Python callables or executable commands—and MatEnsemble submits work through Flux, tracks completions, adapts scheduling to free CPUs and GPUs, and writes structured logs and per-chore output directories.

An optional in-tree dynopro stack supports streaming dynamics and on-the-fly analysis for advanced materials simulation workflows.

Features

  • DAG-based workflows with dependencies via deferred return values (OutputReference)
  • Adaptive scheduling that back-fills the allocation as chores finish (with a non-adaptive available)
  • Two chore types: Python chores (remotely unpickled and executed by matensemble.runtime_worker) and argv-style executable chores
  • Resource requests: tasks, cores per task, GPUs per task, optional MPI (pmi2) via Flux
  • Observability: status.json summaries, append-only status_history.jsonl, matensemble_workflow.log, per-chore stdout / stderr, pickle and JSON result artifacts; optional web dashboard

Adaptive task management

On-the-fly dynamics and analysis

Installation

OCI images are published to GitHub Container Registry

ghcr.io/freddude2004/matensemble:baseline-vX.Y.Z

See the container packages and the installation guide in the docs for Apptainer/Singularity and site-specific notes.

Anaconda

You can build a Conda environment with MatEnsemble and dependencies installed using the environment.yaml file.

conda env create -f environment.yaml

Example

from matensemble.pipeline import Pipeline

pipe = Pipeline()
pipe.exec(command=["/bin/echo", "hello from MatEnsemble"])
pipe.submit()

For Python chores, dependency graphs, and the required split between an importable chore module and a runner script, see the Tutorials.

Examples in the repository

Illustrative workflows live under example_workflows/.

Requirements and runtime

  • A Flux allocation (or equivalent) on the machine where you call Pipeline.submit()
  • For MPI Python or executable chores: a coherent MPI/Flux setup (e.g. PMI2) as expected by your site
  • Optional: SSH port forwarding if you enable the dashboard on a compute node (see the design guide in the docs)

Related links

Authors

Soumendu Bagchi, Kaleb Duchesneau (see pyproject.toml for contact details).

License

BSD 3-Clause. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

matensemble-0.4.4.tar.gz (61.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

matensemble-0.4.4-py3-none-any.whl (77.7 kB view details)

Uploaded Python 3

File details

Details for the file matensemble-0.4.4.tar.gz.

File metadata

  • Download URL: matensemble-0.4.4.tar.gz
  • Upload date:
  • Size: 61.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for matensemble-0.4.4.tar.gz
Algorithm Hash digest
SHA256 f0f5e4f5cbaa9b8dc26e39dc56e1961e26c7069d80f4955f39ad7227db5f4c06
MD5 686e56933fcc7829d78aba3547fcb718
BLAKE2b-256 b030847a2aa2efc63b236e394f0530e690b4df1e01b31750858fc9bfd16b6d0b

See more details on using hashes here.

File details

Details for the file matensemble-0.4.4-py3-none-any.whl.

File metadata

  • Download URL: matensemble-0.4.4-py3-none-any.whl
  • Upload date:
  • Size: 77.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for matensemble-0.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 13b335d279d55dc1443b3eaac81caf88c88c04b05bcf18b3b7baa6c41add5c73
MD5 efc082968e255bfc6ecce87c32a47fae
BLAKE2b-256 62e0c67e26a0154c38fc7ccb9a4c9a3f1682703fc30d0fcf676b61632bedf6f1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page