Skip to main content

daisy tests ruff mypy pypi

Daisy: A Blockwise Task Scheduler

Blockwise task scheduler for processing large volumetric data

What is Daisy?

Daisy is a library framework that facilitates distributed processing of big nD datasets across clusters of computers. It combines the best of MapReduce/Hadoop (the ability to map a process function across elements) and Luigi (the ability to chain dependent tasks together) together in one lightweight and efficient package with a focus on processing nD datasets.

Daisy documentations are at https://funkelab.github.io/daisy

Updates

Daisy v1.0 is now available on PyPI!

  • Install it now with pip install daisy
  • Besides quality-of-life improvements, we have also refactored I/O-related utilities to funlib.persistence to make code maintenance easier. This includes everything that was in daisy.persistence along with daisy.Array and helper functions such as daisy.open_ds, and daisy.prepare_ds.
    • Just run pip install funlib.persistence.
    • These functions, which provide an easy to use interface to common formats such as zarr, n5 and any other dask friendly format for arrays and interfaces for storing large spatial graphs in SQLite, PostgreSQL, or Files remain the same.

Overview

Developed by researchers at HHMI Janelia and Harvard, the intention behind Daisy was to develop a scalable and fast distributed block-wise scheduler for processing very large (TBs to PBs) 3D/4D bio image datasets. We needed a fast and scalable scheduler but also resilient to failures and recoverable/resumable from hardware errors. Daisy should also be generalizable enough to support efficient processing of different tasks with different computation and input/output modalities.

Daisy is lightweight

  • Daisy uses high performance TCP/IP libraries for communications between the scheduler and workers.

  • It minimizes network overheads by sending only coordinates and status checks. Daisy does not enforce the exact method of data transfers to/between workers so that maximum performance is achieved for different tasks.

Daisy's API is easy-to-use and extensible

  • Built on Python, Daisy provides an easy-to-use native interface for Python scripts useful for both simple and complex use cases.

  • Simplistically, Daisy is a framework for mapping a function across independent sub-blocks in the dataset.

  • More complex usages include specifying inter-block dependencies, inter-task dependencies, using Daisy's array interface and geometric graph interface.

Daisy chains complex pipelines of tasks

  • Inspired by powerful workflow management frameworks like Luigi for automating long running tasks and decreasing overall processing time through task pipelining, Daisy allows user to specify dependency between tasks, allowing for task chaining and running multiple tasks in a pipeline with dynamic concurrent per-block execution.

  • For instance, Daisy can chain a map task and a reduce task to implement a map-reduce task for nD datasets. Of course, any other combinations of map and reduce tasks are composable.

  • By tracking dependencies at the block level, tasks can be executed concurrently to maximize pipelining parallelism.

Daisy is tuned for processing datasets with real-world units

  • Daisy has a native inferface to represent of regions in a volume in real world units, easily handling voxel sizes, with convenience functions for region manipulation (intersection, union, growing or shrinking, etc.)

Citing Daisy

To cite this repository please use the following bibtex entry:

@software{daisy2022github,
  author = {Tri Nguyen and Caroline Malin-Mayor and William Patton and Jan Funke},
  title = {Daisy: block-wise task dependencies for luigi.},
  url = {https://github.com/funkelab/daisy},
  version = {1.0},
  year = {2022},
}

In the above bibtex entry, the version number is intended to be that from daisy/setup.py, and the year corresponds to the project's 1.0 release.

Metadata

Release files for daisy 1.2.3

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

Source distribution (sdist)

Source distribution for daisy 1.2.3
File Size Uploaded Provenance
daisy-1.2.3.tar.gz 44.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for daisy 1.2.3
File Interpreter ABI Platform
daisy-1.2.3-py3-none-any.whl Python 3 none any Details

Total release size: 91.7 kB

Release files / daisy-1.2.3.tar.gz

Download URL daisy-1.2.3.tar.gz
Size 44.6 kB
Tags Source
SHA-256 checksum
How to use checksums
44a6917760a08e39a9151a1341523c0dafa11d5b369ebfcdab7b44b1504f5a4c
BLAKE2b-256 checksum
How to use checksums
430e3b2be0450f7da9096c5b68f8a3a5728ca4821e0b0b90c1cc514adc3cb947
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / daisy-1.2.3-py3-none-any.whl

Download URL daisy-1.2.3-py3-none-any.whl
Size 47.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2bbf476acd862771daba5a72ed52b770a5e9c4688026403f33b2c4d8b7776771
BLAKE2b-256 checksum
How to use checksums
6109e531fbc1b126978323c9833e685f3f8d4d05ea9ccd474467261317a54597
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for daisy 1.2.3

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.

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