bundle (Developer Reference)

Implementation

  • Python module: zppy/bundle.py

  • Jinja2 template: zppy/templates/bundle.bash

The Bundle class in bundle.py collects tasks that share the same bundle name. When handle_bundles() is called, it renders a single SLURM script that runs all bundled tasks sequentially within one job.

A bundle is named by its [bundle] [[name]] subsection, and tasks opt in by setting bundle = name. Bundle parameters (walltime, nodes, etc.) are taken from the first task added or from the [bundle] section.

Dependencies

Bundles inherit the union of all their member tasks’ dependencies. The bundle job will not start until all upstream dependencies are satisfied for all bundled tasks.

Downstream:

  • Downstream tasks that depend on bundled tasks will list the bundle’s status file as a dependency.