A Framework for Enabling Scientific Workflow Research and Education
Project description
An open-source ecosystem of workflow execution instances, synthetic workflow generators, and benchmark specifications. It helps the community study scheduling, performance, resilience, and emerging AI-driven workflow automation on modern distributed and HPC platforms.
- Real instances: Workflow executions curated in a common JSON format (WfFormat).
- Synthetic realism: Generate realistic workflows from real traces.
- Benchmarks: Produce executable specs for repeatable experiments and fair comparisons.
Quick links: Documentation · Website · GitHub Issues
Quickstart
WfCommons requires Python 3.11+ and has been tested on Linux and macOS.
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install wfcommons
Generate a synthetic workflow in a few lines:
import pathlib
from wfcommons.wfchef.recipes import SeismologyRecipe
from wfcommons import WorkflowGenerator
generator = WorkflowGenerator(SeismologyRecipe.from_num_tasks(250))
workflow = generator.build_workflow()
workflow.write_json(pathlib.Path("seismology-workflow.json"))
Next steps:
- Learn how to build recipes in the WfChef guide.
- Generate larger workflow families in the WfGen guide.
- Produce benchmark specs in the WfBench guide.
Installation
WfCommons is available on PyPI.
python3 -m pip install wfcommons
Installing from source (latest)
git clone https://github.com/wfcommons/wfcommons
cd wfcommons
python3 -m pip install .
Optional Requirements
Graphviz
WfCommons uses pygraphviz for generating visualizations for the workflow task graph. If you want to enable this feature, you will have to install the graphviz package (version 2.16 or later). You can install graphviz easily on Linux with your favorite package manager, for example for Debian-based distributions:
sudo apt-get install graphviz libgraphviz-dev
and for RedHat-based distributions:
sudo yum install python-devel graphviz-devel
On macOS you can use brew package manager:
brew install graphviz
Then you can install pygraphviz by running:
python3 -m pip install pygraphviz
pydot
WfCommons uses pydot for reading and writing DOT files. If you want to enable this feature, you will have to install the pydot package:
python3 -m pip install pydot
Get in Touch
The main channel to reach the WfCommons team is via the support email: support@wfcommons.org.
Bug Report / Feature Request: our preferred channel to report a bug or request a feature is via WfCommons's Github Issues Track.
Citing WfCommons
When citing WfCommons, please use the following paper. You should also actually read that paper, as it provides a recent and general overview on the framework.
@article{wfcommons,
title = {{WfCommons: A Framework for Enabling Scientific Workflow Research and Development}},
author = {Coleman, Taina and Casanova, Henri and Pottier, Loic and Kaushik, Manav and Deelman, Ewa and Ferreira da Silva, Rafael},
journal = {Future Generation Computer Systems},
volume = {128},
number = {},
pages = {16--27},
doi = {10.1016/j.future.2021.09.043},
year = {2022},
}
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wfcommons-1.4.tar.gz.
File metadata
- Download URL: wfcommons-1.4.tar.gz
- Upload date:
- Size: 5.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00b07889b4f412540959bc94b1237af2186d65d9bc38ab3addd9e5913e3dc215
|
|
| MD5 |
45cdcc7f9dae6fa2deb67c9a7cf22ca2
|
|
| BLAKE2b-256 |
b19b7b0924ed2f27e0c4a6903ee1c9871170e312dc25318db0fa45f5f9ccdd23
|
File details
Details for the file wfcommons-1.4-cp314-cp314-macosx_26_0_arm64.whl.
File metadata
- Download URL: wfcommons-1.4-cp314-cp314-macosx_26_0_arm64.whl
- Upload date:
- Size: 6.1 MB
- Tags: CPython 3.14, macOS 26.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c3e57e5ba17167a0bec61b6cf097ad980beffb126f200f59aa2cfe413083eda
|
|
| MD5 |
83d255b1ec97fb7d66e406e8da2241c0
|
|
| BLAKE2b-256 |
52a4980858c18c6f044c5dac2dc5590942d989cf4ae7cee4fa8884ce8720a37c
|