Libpipe
Common pipeline framework and library
Installation
libpipe can be installed via pip:
$ pip install libpipe
and requires Python 3.10 or higher.
Worker pools on a Slurm cluster
A WorkerPool runs its tasks locally, on other hosts over SSH, or through Slurm with the
host slurm: each task is then started with srun, as a job of its own when the pool runs
on a login node, as a job step inside an allocation (salloc, sbatch).
pool = worker.WorkerPool(['slurm'], name='Imaging', max_tasks_per_worker=8,
slurm_options='-p regular --mem=200G --time=24:00:00')
max_tasks_per_worker is the number of jobs in flight. The srun options (partition,
account, resources) come from slurm_options, or from the LIBPIPE_SLURM_OPTIONS
environment variable; max_time becomes the job time limit when the options set none.
Host constraints (run_on_host) do not apply: Slurm places the tasks, so the data must be
on a file system shared with the compute nodes.
With slurm_nodes, a pool on a login node requests one allocation of up to that many nodes
when its first task starts, runs each task as a job step in it (srun --jobid --exact), and
releases it at the end, or after 10 minutes without step. Slurm packs the steps on the nodes
from their CPUs and memory, given by the category of the task; a step starts when the
allocation has its CPUs free, so that no srun waits polling the controller:
pool = worker.WorkerPool(['slurm'], name='Cubes', slurm_nodes=4,
resources={'heavy': {'cpus': 12, 'mem': '40GB'}})
pool.add('pstool gen_vis_cube ...', category='small', label='gen_vis_cube')
The categories (DEFAULT_RESOURCES) are small (1 CPU, 2 GB), medium (4, 8 GB),
high_mem (2, 16 GB), cpu (12, 8 GB) and heavy (12, 40 GB, the default), the others capped
at heavy; a step also gets the matching OMP_NUM_THREADS. The options apply to the jobs and
the allocation, not to the steps. Inside an allocation started by hand, the tasks are job
steps with these resources as well.
Slurm does not necessarily limit the memory of a job step: the memory of a category must stay
above the peak memory of its tasks. The local and Slurm pools measure each task (wall time,
CPU time, peak RSS, in its log file), and WorkerPoolReport.usage_lines() summarises them per
task type (label).
Metadata
Release files for libpipe 0.9.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| libpipe-0.9.1.tar.gz | 34.8 kB | Without provenance | Details for libpipe-0.9.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| libpipe-0.9.1-py3-none-any.whl | Python 3 | none | any | Details for libpipe-0.9.1-py3-none-any.whl |
Total release size: 71.9 kB
Release files / libpipe-0.9.1.tar.gz
| Download URL | libpipe-0.9.1.tar.gz |
|---|---|
| Size | 34.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d8821b8d54c1aa8f546a2df80d3f51367d9087c4d84c55601b1871a953fe87c6
|
|
BLAKE2b-256 checksum How to use checksums |
9a4e55366c4a24ab2d07b0639586e86ec8b8f328750f3f891167abb09792b6a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.2 CPython/3.10.14 Linux/7.0.0-38-generic
|
Release files / libpipe-0.9.1-py3-none-any.whl
| Download URL | libpipe-0.9.1-py3-none-any.whl |
|---|---|
| Size | 37.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a2bb4f11fecff79b333105fbce959f86ae6faec6bdabee41f8456c64097dcda8
|
|
BLAKE2b-256 checksum How to use checksums |
2caeb277ba5fc0e33b2db2672bbec278eda589c19dab731b00deabad93658299
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.2 CPython/3.10.14 Linux/7.0.0-38-generic
|
Security for libpipe 0.9.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.