Skip to main content

ECMWF Software EnginE Maturity Level Licence Latest Release

Installation • Quick Start • Documentation

[!IMPORTANT] This software is Emerging and subject to ECMWF's guidelines on Software Maturity.

earthkit-workflows is a Python library for declaring earthkit task as DAGs. It contains an internal cascade engine for scheduling and executing task graphs almost optimally across heterogeneous platforms with complex network technologies and topologies. It effectively performs task-based parallelism across CPUs, GPUs, distributed systems (HPC), and any combination thereof. It is designed for a no-IO approach, where expensive storage of intermediate data is minimised whilst maximising all available transport technologies between different hardware.

Cascade is designed to work on well-profiled task graphs, where:

  • the task graph is a static DAG,
  • the DAG nodes are defined by tasks with well-known execution times,
  • the DAG edges are defined by data dependencies with well-known data sizes,
  • the characteristics of the hardware (processors, network connections) are known.

earthkit-workflows allows for declaring such task graphs using a neat fluent API, and interoperates pleasantly with the rest of the earthkit ecosystem.

Installation

Install via pip with:

$ pip install 'earthkit-workflows[all]'

For development, you can use pip install -e . though there is currently an issue with earthkit masking. Additionally you may want to install pre-commit hooks via

$ pip install pre-commit
$ pre-commit install

Quick Start

Note: this section is moderately outdated.

We support two regimes for cascade executions -- local mode (ideal for developing and debugging small graphs) and distributed mode (assumed for slurm & HPC).

To launch in local mode, in your python repl / jupyno:

import cascade.benchmarks.job1 as j1
import cascade.benchmarks.distributed as di
import cloudpickle

spec = di.ZmqClusterSpec.local(j1.get_prob())
print(spec.controller.outputs)
# prints out:
# {DatasetId(task='mean:dc9d90 ...
# defaults to all "sinks", but can be overridden

rv = di.launch_from_specs(spec, None)

for key, value in rv.outputs.items():
    deser = cloudpickle.loads(value)
    print(f"output {key} is of type {type(deser)}")

For distributed mode, launch

./scripts/launch_slurm.sh ./localConfigs/<your_config.sh>

Inside the <your_config.sh>, you define size of the cluster, logging directory output, which job to run... Pay special attention to definitions of your venv and LD_LIBRARY_PATH etc -- this is not autotamed.

Both of these examples hardcode particular job, "job1", which is a benchmarking thing. Most likely, you want to define your own -- for the local mode, just pass cascade.Graph instance to the call; in the dist mode, you need to provide that instance in the cascade.benchmarks.__main__ modules instead (ideally by extending the get_job function).

There is also python -m cascade.benchmarks local <..> -- you may use that as an alternative path to local mode, for your own e2e tests.

Documentation

Not yet available.

Contributions and Support

Due to the maturity and status of the project, there is no support provided -- unless the usage of this project happens within some higher-status initiative that ECMWF participates at. External contributions and created issues will be looked at, but are not guaranteed to be accepted or responded to. In general, follow ECMWF's guidelines for external contributions.

License

See license.

Metadata

Release files for earthkit-workflows 0.19.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for earthkit-workflows 0.19.1
File Size Uploaded
earthkit_workflows-0.19.1.tar.gz 10.9 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for earthkit-workflows 0.19.1
File Interpreter ABI Platform
earthkit_workflows-0.19.1-py3-none-any.whl Python 3 none any Details

Total release size: 11.1 MB

Release files / earthkit_workflows-0.19.1.tar.gz

Download URL earthkit_workflows-0.19.1.tar.gz
Size 10.9 MB
Tags Source
SHA-256 checksum
How to use checksums
a3cc148a6817fedd4672a3fa5b6f0e15e3cb6b7e2dab8aa09cfad82104494e11
BLAKE2b-256 checksum
How to use checksums
dde4c418ed107bbea56cc2dc5eb8c05816bb9845aa6ab49799530fa6bd4c1398
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / earthkit_workflows-0.19.1-py3-none-any.whl

Download URL earthkit_workflows-0.19.1-py3-none-any.whl
Size 227.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dd3b2ed986d38ce8c73c778622bf57a9fa62a83d6331773748aae387d6292579
BLAKE2b-256 checksum
How to use checksums
344d59ead069845e3bb0bdba6de9e4aad3685d61dd12c4347bea07880afe37b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release history Release notifications | RSS feed

This release

0.19.1 This release

2 release files

0.18.0

2 release files

0.17.5

2 release files

0.17.4

2 release files

0.17.3

2 release files

0.17.2

2 release files

0.17.1

2 release files

0.17.0

2 release files

0.16.2

2 release files

0.16.1

2 release files

0.16.0

2 release files

0.15.4

2 release files

0.15.3

2 release files

0.15.0

2 release files

0.14.3

2 release files

0.13.1

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.2

2 release files

0.10.1

2 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page