@@ -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
2343The Python standard library provides the [ Executor interface] ( https://docs.python.org/3/library/concurrent.futures.html#executor-objects )
2444with 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 )
0 commit comments