Skip to content

Commit 326aad6

Browse files
authored
Merge branch 'main' into fast_batched
2 parents 21ba863 + fd8b9a9 commit 326aad6

37 files changed

Lines changed: 536 additions & 386 deletions

.ci_support/environment-docs.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ channels:
22
- conda-forge
33
dependencies:
44
- flux-core
5-
- hatchling
6-
- hatch-vcs
5+
- hatchling =1.30.1
6+
- hatch-vcs =0.5.0
77
- myst-parser
88
- nbsphinx
99
- numpy

.ci_support/environment-integration.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ dependencies:
1212
- flux-core =0.81.0
1313
- flux-pmix =0.6.0
1414
- gpaw =25.7.0
15-
- hatchling =1.29.0
15+
- hatchling =1.30.1
1616
- hatch-vcs =0.5.0
1717
- ipython =9.9.0
1818
- matplotlib =3.10.8
1919
- networkx =3.6.1
2020
- pydantic =2.13.4
2121
- pygraphviz =1.14
22-
- pysqa =0.4.1
22+
- pysqa =0.4.2
2323
- pyzmq =27.1.0
2424
- qe =7.5

.ci_support/environment-mini.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ dependencies:
44
- python
55
- numpy =2.4.2
66
- cloudpickle =3.1.0
7-
- hatchling =1.29.0
7+
- hatchling =1.30.1
88
- hatch-vcs =0.5.0
99
- pyzmq =27.1.0

.ci_support/environment-mpich.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ dependencies:
66
- mpich
77
- cloudpickle =3.1.2
88
- h5py =3.16.0
9-
- hatchling =1.29.0
9+
- hatchling =1.30.1
1010
- hatch-vcs =0.5.0
1111
- ipython =9.9.0
1212
- mpi4py =4.1.2
1313
- networkx =3.6.1
1414
- pydantic =2.13.4
1515
- pygraphviz =1.14
16-
- pysqa =0.4.1
16+
- pysqa =0.4.2
1717
- pyzmq =27.1.0

.ci_support/environment-openmpi.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ dependencies:
66
- openmpi
77
- cloudpickle =3.1.2
88
- h5py =3.16.0
9-
- hatchling =1.29.0
9+
- hatchling =1.30.1
1010
- hatch-vcs =0.5.0
1111
- ipython =9.9.0
1212
- mpi4py =4.1.2
1313
- networkx =3.6.1
1414
- pydantic =2.13.4
1515
- pygraphviz =1.14
16-
- pysqa =0.4.1
16+
- pysqa =0.4.2
1717
- pyzmq =27.1.0

.ci_support/environment-win.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ dependencies:
66
- msmpi
77
- cloudpickle =3.1.2
88
- h5py =3.16.0
9-
- hatchling =1.29.0
9+
- hatchling =1.30.1
1010
- hatch-vcs =0.5.0
1111
- ipython =9.9.0
1212
- mpi4py =4.1.2

.github/workflows/pipeline.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@ name: Pipeline
33
on:
44
push:
55
branches: [ main ]
6+
paths-ignore:
7+
- 'docs/**'
68
pull_request:
9+
paths-ignore:
10+
- 'docs/**'
711

812
jobs:
913
black:

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
repos:
22
- repo: https://github.com/astral-sh/ruff-pre-commit
3-
rev: v0.15.14
3+
rev: v0.15.16
44
hooks:
55
- id: ruff
66
name: ruff lint

README.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,26 @@ Up-scale python functions for high performance computing (HPC) with executorlib.
1919
machine learning pipelines and simulation workflows executorlib provides optional caching of intermediate results for
2020
iterative development in interactive environments like jupyter notebooks.
2121

22+
## Why executorlib?
23+
executorlib is the lightest path to take *existing* Python functions and scale them across high performance computing
24+
(HPC) nodes — with per-function-call resource control and native [SLURM](https://slurm.schedmd.com) and
25+
[flux](http://flux-framework.org) integration — without rewriting your code into a new paradigm. It extends the standard
26+
library [Executor interface](https://docs.python.org/3/library/concurrent.futures.html#executor-objects) you already
27+
know, rather than asking you to adopt a new data, actor, or workflow model.
28+
29+
| | executorlib | [Futures](https://docs.python.org/3/library/concurrent.futures.html) | [Dask](https://www.dask.org) | [Parsl](https://parsl-project.org) | [Ray](https://www.ray.io) |
30+
|---|---|---|---|---|---|
31+
| Drop-in `Executor` API ||| ⚠️ | ⚠️ ||
32+
| Per-call resource assignment ||| ⚠️ |||
33+
| Native HPC scheduler (SLURM/flux) ||| ⚠️ || ⚠️ |
34+
| MPI-parallel functions ||| ⚠️ | ⚠️ | ⚠️ |
35+
| Caching of results ||| ⚠️ |||
36+
| Setup / learning overhead | Low | Very low | Medium | Medium | Medium |
37+
38+
✅ first-class · ⚠️ possible via add-on/config · ❌ not supported. See the full
39+
[comparison: when to use which](https://executorlib.readthedocs.io/en/latest/comparison.html) for honest guidance on
40+
when another tool is the better fit.
41+
2242
## Examples
2343
The Python standard library provides the [Executor interface](https://docs.python.org/3/library/concurrent.futures.html#executor-objects)
2444
with the [ProcessPoolExecutor](https://docs.python.org/3/library/concurrent.futures.html#processpoolexecutor) and the
@@ -130,6 +150,13 @@ as hierarchical job scheduler within the allocations.
130150
* [HPC Job Executor](https://executorlib.readthedocs.io/en/latest/installation.html#hpc-job-executor)
131151
* [Visualisation](https://executorlib.readthedocs.io/en/latest/installation.html#visualisation)
132152
* [For Developers](https://executorlib.readthedocs.io/en/latest/installation.html#for-developers)
153+
* [Comparison](https://executorlib.readthedocs.io/en/latest/comparison.html#comparison)
154+
* [At a glace](https://executorlib.readthedocs.io/en/latest/comparison.html#at-a-glance)
155+
* [Concurrent futures](https://executorlib.readthedocs.io/en/latest/comparison.html#concurrent-futures-the-python-standard-library)
156+
* [Dask](https://executorlib.readthedocs.io/en/latest/comparison.html#dask)
157+
* [Parsl](https://executorlib.readthedocs.io/en/latest/comparison.html#parsl)
158+
* [Ray](https://executorlib.readthedocs.io/en/latest/comparison.html#ray)
159+
* [Choose executorlib when](https://executorlib.readthedocs.io/en/latest/comparison.html#choose-executorlib-when)
133160
* [Single Node Executor](https://executorlib.readthedocs.io/en/latest/1-single-node.html)
134161
* [Basic Functionality](https://executorlib.readthedocs.io/en/latest/1-single-node.html#basic-functionality)
135162
* [Parallel Functions](https://executorlib.readthedocs.io/en/latest/1-single-node.html#parallel-functions)

binder/environment.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@ dependencies:
77
- cloudpickle =3.1.2
88
- flux-core =0.81.0
99
- flux-pmix =0.6.0
10-
- hatchling =1.29.0
10+
- hatchling =1.30.1
1111
- hatch-vcs =0.5.0
1212
- h5py =3.16.0
1313
- ipython =9.9.0
1414
- matplotlib =3.10.0
1515
- mpi4py =4.1.2
1616
- networkx =3.6.1
1717
- pygraphviz =1.14
18-
- pysqa =0.4.1
18+
- pysqa =0.4.2
1919
- pyzmq =27.1.0

0 commit comments

Comments
 (0)